【问题标题】:Gridview onRowCommand fired gridview no dataGridview onRowCommand 触发 gridview 没有数据
【发布时间】:2013-08-15 09:12:15
【问题描述】:
<asp:GridView ID="gvWorkshop" runat="server" 
              AllowCustomPaging="True" AllowPaging="True"
              BorderStyle="Solid" BorderWidth="1px" 
              AllowSorting="True" AutoGenerateColumns="False"
              DataKeyNames="ID, ctrycode" OnRowCommand="gvWorkshop_onRowCommand">
        <Columns>
            <asp:ButtonField CommandName="Select" Text="Select" />
            <asp:BoundField DataField="paddress" HeaderText="Address" />
        </Columns>
 </asp:GridView>

代码背后

 protected void gvWorkshop_onRowCommand(object sender, GridViewCommandEventArgs e)
 {
   int index;
   string ID;
   GridViewRow row;
   if(e.CommandName == "Edit")
   {
      index = Convert.ToInt32(e.CommandArgument);
      row = gvWorkshop.Rows[index];
      ID = gvWorkshop.DataKeys[grdrow.RowIndex]["workshopID"].ToString();
   }
 }

我得到错误索引超出范围,因为 gridview 是空的。任何人都知道出了什么问题?为什么gridview变成空的。请帮忙。

【问题讨论】:

  • 你在哪里绑定你的gridview?

标签: c# asp.net c#-4.0 gridview


【解决方案1】:

这一行的问题

ID = gvWorkshop.DataKeys[grdrow.RowIndex]["workshopID"].ToString();

您提到了“grdrow”而不是“row”。请改成

 ID = gvWorkshop.DataKeys[row.RowIndex]["workshopID"].ToString();

【讨论】:

  • 问题出在 row = gvWorkshop.Rows[index];它显示索引超出范围。
  • 我试试这个,我可以得到 ID,但之后我的 gridview 不见了。
  • 请更新您的设计器代码。bcoz 您正在检查 e.CommandName == "Edit" 但您没有在设计器中提及。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-21
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多