Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 网格值内的按钮在单击事件时不返回更新的值_C#_Asp.net_Button_Grid - Fatal编程技术网

C# 网格值内的按钮在单击事件时不返回更新的值

C# 网格值内的按钮在单击事件时不返回更新的值,c#,asp.net,button,grid,C#,Asp.net,Button,Grid,我在网格中的项目模板中有一个按钮。我正在动态分配按钮文本。因为我需要为每一行按钮提供不同的文本。但是,OnClick事件没有显示更新的文本,而是显示一个空字符串。请帮忙 <asp:TemplateField HeaderText="GetHistory"> <ItemTemplate> <asp:Button DataField="GetHistory" ID="btn_getHistory

我在网格中的
项目模板中有一个
按钮
。我正在动态分配按钮文本。因为我需要为每一行按钮提供不同的文本。但是,
OnClick
事件没有显示更新的文本,而是显示一个空字符串。请帮忙

<asp:TemplateField HeaderText="GetHistory">
    <ItemTemplate>
        <asp:Button 
            DataField="GetHistory" 
            ID="btn_getHistory" 
            CausesValidation="false" 
            runat="server" 
            OnClick="btn_getHistory_Click" Visible="false" />
    </ItemTemplate>
 </asp:TemplateField>




  protected void btn_getHistory_Click(object sender, EventArgs e)
    {
     //My sender text is showing empty here
    }


  protected void GridViewTree1_RowCreated(object sender, GridViewRowEventArgs e)
  {
 if (e.Row.RowType == DataControlRowType.DataRow && e.Row.DataItem != null && !((System.Data.DataRowView)(e.Row.DataItem)).Row.ItemArray[0].ToString().Contains("\\"))
            {

                Button btn_getHistory = (Button)e.Row.Cells[3].FindControl("btn_getHistory");
                if (btn_getHistory != null)
                {
                    btn_getHistory.Visible = true;

                    var chunks = ((System.Data.DataRowView)(e.Row.DataItem)).Row.ItemArray[0].ToString().Split('_'); // any separator characters
                    var a = chunks.Take(chunks.Length - 1);
                    string testsetName = string.Empty;
                    foreach (string b in a)
                    {
                        testsetName = testsetName + b + '_';
                    }


                    btn_getHistory.Text = testsetName.ToString().TrimEnd('_');
                }
   }

受保护的无效btn\u获取历史记录\u单击(对象发送方,事件参数e)
{
//我的发件人文本显示为空
}
已创建受保护的无效GridViewTree1_行(对象发送方,GridViewRowEventArgs e)
{
如果(e.Row.RowType==DataControlRowType.DataRow&&e.Row.DataItem!=null&&!((System.Data.DataRowView)(e.Row.DataItem)).Row.ItemArray[0].ToString().Contains(“\\”)
{
按钮btn_getHistory=(按钮)e.Row.Cells[3]。FindControl(“btn_getHistory”);
if(btn_getHistory!=null)
{
btn_getHistory.Visible=true;
var chunks=((System.Data.DataRowView)(e.Row.DataItem)).Row.ItemArray[0].ToString().Split(“”“);//任何分隔符
var a=chunks.Take(chunks.Length-1);
string testsetName=string.Empty;
foreach(a中的字符串b)
{
testsetName=testsetName+b+'';
}
btn_getHistory.Text=testsetName.ToString().TrimEnd(“”);
}
}

可能是因为它是可见的=“false”我正在将可见性设置为true,然后为每一行分配值。代码在哪里?网格应该有某种
OnitemDataBound
事件,您可以在其中修改每一行按钮的值,或者可以使用某种数据绑定。如果您可以显示网格代码和后端代码,效果会更好。我已经放置了Rowcreated event以及我更新按钮值的地方。请帮助