读书人

用GridViewDeleteEventArgs代替EventA

发布时间: 2013-05-02 09:39:29 作者: rapoo

用GridViewDeleteEventArgs代替EventArgs报错的问题
gridview每一行里都有一个按钮,点击后的事件


protected void shanchu_Click(object sender, GridViewDeleteEventArgs e)
{
if (int.Parse(GridView1.DataKeys[e.RowIndex][1].ToString()) < 1)
{
if (sqlhelper.ExecuteNonQuery("delete from dingdan where id='" + int.Parse(GridView1.DataKeys[e.RowIndex][1].ToString()) + "' and username='" + sessionok.returnsession("userid") + "'") == 1)
{
getdata(ViewState["sql"].ToString());
}
}
}

用GridViewDeleteEventArgs是为了获取当前行的参数,也就是为了获取e.RowIndex,但是会报错误
编译器错误消息: CS0123: “shanchu_Click”的重载均与委托“System.EventHandler”不匹配
只能使用默认的protected void shanchu_Click(object sender, EventArgs e),但是怎么获取当前行的参数呢,也就是怎么获取RowIndex
[解决办法]
部分代码给你参考下:
html:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
onrowcommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText="序号">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" CommandName="btn" CommandArgument='<%#Eval("id") %>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


cs代码:
 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
Button bt = e.CommandSource as Button;
string id = bt.CommandArgument;//绑定的数据
switch (e.CommandName)
{
case "btn":
//操作;


break;
}
}

读书人网 >asp.net

热点推荐