【发布时间】:2015-10-30 07:05:03
【问题描述】:
当我在任何行中单击 EDIT 时,为什么它会选择第一行的索引?
Gridiview 中的编辑按钮:
<asp:ButtonField CommandName="cmdEdit" HeaderText="Edit" ImageUrl="~/assets/global/images/shopping/edit.png" ButtonType="Image" ControlStyle-Width="25px" ControlStyle-Height="20px" />
编辑背后的代码:
protected void grdviewLandInfo_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
int Index = Convert.ToInt32(e.CommandArgument);
Int32 LandInfoID = Convert.ToInt32(grdviewLandInfo.DataKeys[Index].Value);
short UserID = Convert.ToInt16(Session["UserID"]);
short LandTypeID = Convert.ToInt16(grdviewLandInfo.Rows[Index].Cells[6].Text);
【问题讨论】:
-
这是因为你没有指定
<asp:ButtonField...的任何CommandArgument属性 -
但在其他页面中我没有指定任何命令参数并且有效
-
并且 CommantArgument 不是 buttonField 的属性
-
那是因为
CommandArgument没有为按钮指定,所以e.CommandArgument在RowCommand上为空,然后Convert.ToInt32为空值返回 0,0 是您的第一行索引 -
啊,现在有趣了,
CommandArgument不是 ButtonField 的属性。从来没有使用过按钮域,我总是使用带有 CommandName 和 CommandArgument 的 LinkButton,所以研究一下。
标签: c# asp.net gridview webforms