如何使用gridwiew_rowcommand返回的值来搜索数据库?

本文关键字:搜索 数据库 返回 何使用 gridwiew rowcommand | 更新日期: 2023-09-27 18:15:59

我试图在我的gridview中使用一个按钮来传递ID,这是从我选择的行GUID到我的数据库,在那里我将它与数据库中的GUID进行比较,然后我将它传递给我的"Show"函数并从数据库中获取帖子。

现在我不知道如何从我的按钮获取对象"visadabok"到我的"Show"。

protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
            {
            }
            else
            {
                //TextBox68.Text = Request["ID"];
                if (!string.IsNullOrEmpty(TextBox68.Text))
                {
                    Show(GridView1_RowCommand());
                }
            }
        }
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Valj")
            {
                var valj = new Guid((string)e.CommandArgument);
                var visadagbok = (from x in DagbokFactoryBase.All
                                     where (x.ID == valj)
                                     select x).FirstOrDefault();
                return visadagbok;
            }
        }
<asp:TemplateField>
    <ItemTemplate>
    <asp:Button ID="AddButton" runat="server"
    CommandName="Valj"
    CommandArgument="<%# ((GridViewRow) Container).ID %>"
    Text="Gå till" />
    </ItemTemplate>
</asp:TemplateField>

如何使用gridwiew_rowcommand返回的值来搜索数据库?

GridView1_RowCommand的返回类型为void,因此该方法将无法向Show方法返回任何数据。有两个选项可以选择

  1. GridView1_RowCommand方法调用Show方法(当。net框架为网格执行事件调用时的最佳选择)

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
   if (e.CommandName == "Valj")
   {
        var valj = new Guid((string)e.CommandArgument);
        var visadagbok = (from x in DagbokFactoryBase.All
                                     where (x.ID == valj)
                                     select x).FirstOrDefault();
        Show(visadagbok);
   }
}
  1. 如果你想为丢失耦合编写一个基于事件的编程,为此你需要创建一个属性,当属性值被设置时调用委托。从"GridView1_RowCommand"中给属性赋值。这个委托将调用"Show"方法。

:

public delegate void ShowHandler(string id);
public string Id
{
    set
    {
        ShowHandler _show = new ShowHandler(Show);
        if (_show != null)
        {
            _show(value);
        }
    }
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    //set of existing code
    Id = visadagbok
}
public void Show(string Id)
{
    //set of code
}