簡體   English   中英

按鈕上的綁定網格視圖在列表視圖中單擊

[英]binding grid view on button click in listview

我有一個列表視圖,每一行都有一個按鈕:

 <td> <asp:Button ID="Button2" runat="server" Text="select" CommandName="view" CommandArgument='<%# Eval("inquiry_id")%>'   onclick="buttonClick"/></td>

單擊此按鈕后,我將獲取被單擊行的ID,將會話設置為相同的ID並綁定網格視圖。此按鈕后面的代碼在列表視圖中單擊:

ListViewItem item = (sender as Button).NamingContainer as ListViewItem;
    Button butDetails = (Button)item.FindControl("Button2");
    Int64 inquiryID = Convert.ToInt64(butDetails.CommandArgument);
    Session["session_view_id"] = inquiryID;
    this.BindGrid();               
    return;

在bindGrid函數中檢索會話。 但是問題是,第一次單擊時不會顯示gridview,但是在第二次單擊時會顯示gridview,但單擊的是先前id的數據。設置了會話,但是在綁定網格時會使用舊的會話值。 我在哪里綁定網格錯了? bindGrid()函數的代碼是:

 int inquiryID = Convert.ToInt32(Session["session_view_id"]);
   MySqlConnection conn = null;
    try
    {          MySqlCommand cmd = new MySqlCommand("SELECT * FROM crm_support_inquiry inner join  crm_inquiry_perticipant on crm_support_inquiry.inquiry_id=?id inner join crm_mailer_types on crm_support_inquiry.mailer_id=crm_mailer_types.mailer_id limit 4", connect);

        using (MySqlDataAdapter sda = new MySqlDataAdapter())
        {
            cmd.Parameters.AddWithValue("?id", inquiryID);
            cmd.Connection = connect;
            sda.SelectCommand = cmd;
            using (DataTable dt = new DataTable())
           {

               sda.Fill(dt);
                lblComp.Text = dt.Rows[0]["company"].ToString();
                lblCname.Text = dt.Rows[0]["contact_name"].ToString();
              lblEmail.Text = dt.Rows[0]["email"].ToString();
                GridView1.DataSource = dt;
                GridView1.DataBind();
           }
        }

您是否要在Page_Load方法中檢查IsPostBack? 您需要在if(!IsPostBack)語句中將BindGrid調用包裝在Page_Load中,以防止Page_Load最初在回發時刷新數據。 這樣可以防止您稍后在事件處理程序中進行更改。

protected void Page_Load(Object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        BindGrid();
    }
}

此答案可以提供其他信息: 事件處理后如何更新頁面數據?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM