嘿我正在使用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];
它给我以下错误 指定的参数超出了有效值的范围。 参数名称:index
请注意,当我尝试指定ButtonField的commandParameters属性时,编译器表示它不是ButtomField的有效参数 我在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>
答案 0 :(得分:0)
我在我的网站上的许多地方使用此代码来从触发GridViewRowCommand的对象获取行
protected void btnUpdate_Command(object sender, CommandEventArgs e)
{
GridViewRow g = (GridViewRow)((Button)sender).NamingContainer;
// other stuff
}
希望这有帮助。