【问题标题】:How to get the value of selected row using radiobutton in gridview in a button click如何在单击按钮时使用gridview中的单选按钮获取所选行的值
【发布时间】:2012-04-16 01:42:24
【问题描述】:

我需要在 gridview 中获取选中的单选按钮行的值。选定的值被分配给一个文本框。我的代码是

 protected void lnBTNDone_Click(object sender, EventArgs e)
          {
              GridViewRow gvRow = grdEventDetails.SelectedRow;
              txtEventId.Text = gvRow.Cells[0].Text;

          }

问题是 gvRow 值被分配为 null 。

链接按钮不在 gridview 中。 gridview n 链接按钮和文本框位于用户控件内。

【问题讨论】:

    标签: asp.net gridview radio-button


    【解决方案1】:

    您始终可以通过发件人的NamingContainer 获得GridViewRow

    protected void lnBTNDone_Click(object sender, EventArgs e)
    {
        LinkButton  lnBTNDone = (LinkButton)sender;
        GridViewRow row = (GridViewRow)lnBTNDone.NamingContainer;
        txtEventId.Text = row.Cells[0].Text;
    }
    

    假设LinkButton 在选定的行中。

    顺便说一句,我还不确定为什么 SelectedRow 在那里为空,可能是因为 GridView 的 SelectedIndexChanged 事件是在 LinkBut​​ton 的单击事件之后触发的。

    【讨论】:

    • 出现此错误无法将“ASP.usercontrols_usc_eventidparameter_ascx”类型的对象转换为“System.Web.UI.WebControls.GridViewRow”类型。
    • @kk1076:那么我的假设是不正确的。我以为 LinkBut​​ton 在 GridView 中。然后你应该告诉我们链接按钮的位置以及你如何在gridview中选择行。
    • 链接按钮不在网格视图内。但是gridview、文本框和链接按钮放在用户控制页面中
    • 您如何选择 GridView 的行,并且您是否仅对 GridView 进行数据绑定 if(!IsPostBack)(正确的方法是什么)?
    • 我已经在过滤器按钮中绑定了gridview,点击不在页面加载事件中
    【解决方案2】:
    protected void lnBTNDone_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < grdEventDetails.Rows.Count; i++)
        {
            RadioButton rb = (grdEventDetails.Rows[i].FindControl("grdRdo")) as RadioButton;
            if (rb.Checked == true)
            {
                txtEventId.Text = grdEventDetails.Rows[i].Cells[1].Text;
            }
        }           
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2012-05-14
      • 2013-02-12
      相关资源
      最近更新 更多