在这种情况下如何获取gridview单元的值

用户名

我在gridView内有一个链接按钮,如下所示:

 <asp:TemplateField HeaderText="Analyze">
                                 <ItemTemplate>
                                   <asp:LinkButton ID="LinkButton1" Text="Analyze"  runat="server"  OnClick="LinkButton1_Click"  />                                 
                                 </ItemTemplate>
                             </asp:TemplateField>

我有如下所示的LinkBut​​ton1_Click函数:

 protected void LinkButton1_Click(object sender, EventArgs e)
    {     

        testtb.Text = name;
        Console.WriteLine(name);
     }

此变量“名称”是GridView的第一列。我正在获取“名称”的值,如下所示:

protected void UnanalysedGV_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DataRowView d = (DataRowView)e.Row.DataItem;
            name = d["resultId"].ToString();

        }

    }

我希望单击链接按钮时,gridview的该行中的第一列的值成为文本框testtb的文本。

不知何故,名称的值保持为空。

编辑

我发现可能RowDataBound不是满足我要求的正确事件,因为我需要每一行的值。

所以我删除了RowDataBound函数。

我想我必须在LinkBut​​ton1_Click本身内部处理此问题。

我将此行添加到函数中:

name = UnanalysedGV.SelectedRow.Cells[1].Text;

仍然不起作用。有人有什么主意吗 ?

弗雷宾·弗朗西斯(Frebin Francis)

您可以使用下面提到的两种方法来做到这一点。

通过事件冒泡代码处理linkbutton的click事件-

<asp:GridView AutoGenerateColumns="false" runat="server" ID="grdCustomPagging" OnRowCommand="grdCustomPagging_RowCommand">
   <Columns>
       <asp:BoundField DataField="RowNumber" HeaderText="RowNumber" />
       <asp:BoundField DataField="DealId" HeaderText="DealID" />
       <asp:BoundField DataField="Dealtitle" HeaderText="DealTitle" />
       <asp:TemplateField HeaderText="View">
        <ItemTemplate>
       <asp:LinkButton runat="server" ID="lnkView" CommandArgument='<%#Eval("DealId") %>'
         CommandName="VIEW">View Deal</asp:LinkButton>
         </ItemTemplate>
       </asp:TemplateField>
   </Columns>
</asp:GridView>

protected void grdCustomPagging_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "VIEW")
    {
        LinkButton lnkView = (LinkButton)e.CommandSource;
        string dealId = lnkView.CommandArgument;
    }
}

处理linkbutton的click事件,直接单击事件代码-

<asp:GridView AutoGenerateColumns="false" runat="server" ID="grdCustomPagging">
   <Columns>
       <asp:BoundField DataField="RowNumber" HeaderText="RowNumber" />
       <asp:BoundField DataField="DealId" HeaderText="DealID" />
       <asp:BoundField DataField="Dealtitle" HeaderText="DealTitle" />
       <asp:TemplateField HeaderText="View">
        <ItemTemplate>
       <asp:LinkButton runat="server" ID="lnkView" OnClick="lnkView_Click">View Deal</asp:LinkButton>
         </ItemTemplate>
       </asp:TemplateField>
   </Columns>
</asp:GridView>

protected void lnkView_Click(object sender, EventArgs e)
{
    GridViewRow grdrow = (GridViewRow)((LinkButton)sender).NamingContainer;
    string rowNumber = grdrow.Cells[0].Text;
    string dealId = grdrow.Cells[1].Text;
    string dealTitle = grdrow.Cells[2].Text;
}

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在这种情况下,如何获取标签文本?

在这种情况下,如何返回重复值的数量?

在这种情况下,如何更改变量的值?

在这种情况下如何返回 jinja 值?

在这种情况下如何撰写

Telerik,在这种情况下如何将GridView导出到Excel?

当用户删除单元格内容时,如何获取单元格的oldValue?在这种情况下e.oldValue是未定义的

在这种情况下获取地址价值的方法?

在这种情况下无法获得布尔值

如何为“扩展”提供动态值?(或“在这种情况下如何扩展工作”?)

在这种情况下,如何从字符串中获取子字符串?

在这种特定情况下,如何使用流获取列表列表?

在这种情况下,如何获取MySQL的最后一行?

在这种情况下如何获取没有部分定义的Type Partial

在这种情况下,如何通过匹配公共值来生成新的数据帧?

在这种情况下,如何将maxDiff值添加到ArrayList中?

在这种情况下如何设置默认表单控件值?

在这种情况下如何找到下一个值

在这种情况下如何使用 python/selenium 将返回值传递给函数?

在这种情况下如何使用decltype

在这种情况下数据绑定如何工作

如何使用lastInsertId在这种情况下?

在这种情况下,如何计算H的* VC尺寸*?

在这种情况下如何理解 rep() 的用法?

如何做到在这种情况下连接策略?

在这种情况下如何避免泛型?

在这种情况下如何使用np.stack?

在这种情况下如何声明类型?

在这种情况下如何使用python lambda