【问题标题】:Retriving cell value from gridview rowcommand从gridview rowcommand检索单元格值
【发布时间】:2013-04-26 23:04:57
【问题描述】:

嘿,我正在使用 gridview 中的按钮,我想分配给特定操作的每个按钮都涉及从 gridview 列中检索某些单元格值 我尝试使用

 GridViewRow row = (GridViewRow (((Button)e.CommandSource).NamingContainer);

但它让我无法将“System.Web.UI.WebControls.GridView”类型的对象转换为“System.Web.UI.WebControls.Button”。

我也试过了

int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];

它给了我以下错误 指定的参数超出了有效值的范围。 参数名称:索引

请注意,当我尝试指定 ButtonField 的 commandParameters 属性时,编译器说它不是 ButtonField 的有效参数 我在 gridview 中有 8 列,所以它没有超出范围

或者我可以使用多个选择命令按钮 如果是这样怎么说点击了哪一个?

请帮帮我,我很绝望

ASP 代码:

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="AcitivityId" DataSourceID="SqlDataSource1" Height="304px" Width="912px" OnRowCommand="GridView1_RowCommand">
            <Columns>
                <asp:BoundField DataField="AcitivityId" HeaderText="AcitivityId" InsertVisible="False" ReadOnly="True" SortExpression="AcitivityId" />
                <asp:BoundField DataField="ActiviityName" HeaderText="ActiviityName" SortExpression="ActiviityName" />
                <asp:BoundField DataField="ActivityLocation" HeaderText="ActivityLocation" SortExpression="ActivityLocation" />
                <asp:BoundField DataField="ActivityStartDate" HeaderText="ActivityStartDate" SortExpression="ActivityStartDate" />
                <asp:BoundField DataField="ActivityDueDate" HeaderText="ActivityDueDate" SortExpression="ActivityDueDate" />
                <asp:BoundField DataField="ActivityDescription" HeaderText="ActivityDescription" SortExpression="ActivityDescription" />
                <asp:ButtonField ButtonType="Button" CommandName="Avaliable" Text="Show avaliable buses" />
                <asp:ButtonField ButtonType="Button" CommandName="Assigned" Text="Show assigned buses "/>
            </Columns>
        </asp:GridView>

【问题讨论】:

  • 这行得通吗:GridViewRow row = (GridViewRow)((Button)e.CommandSource).NamingContainer;?
  • 不,它不会让我无法将“System.Web.UI.WebControls.GridView”类型的对象转换为“System.Web.UI.WebControls.Button”。

标签: c# asp.net gridview commandparameter rowcommand


【解决方案1】:

我在我网站的许多地方使用此代码从触发 GridViewRowCommand 的对象中获取行

protected void btnUpdate_Command(object sender, CommandEventArgs e)
{
    GridViewRow g = (GridViewRow)((Button)sender).NamingContainer;
    // other stuff
}

希望这会有所帮助。

【讨论】:

  • 感谢您的帮助@TrueDevelopment,但我仍然收到相同的错误无法将“System.Web.UI.WebControls.GridView”类型的对象转换为“System.Web.UI.WebControls.Button” '。
猜你喜欢
  • 2012-04-11
  • 2012-06-02
  • 2018-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多