<asp:Button ID="Button3" runat="server" CommandName="Insert" CommandArgument='<%#Eval("id") %>' Text="添加" />gridView__RowCommand事件 GridViewRow row = ((Control)e.CommandSource).BindingContainer as GridViewRow; if (e.CommandName == "Insert") { int id = int.Parse(e.CommandArgument.ToString()); string str = ((TextBox)row.FindControl("TextBox3")).Text;
click事件 Button btn=sender as Button(); GridViewRow gvr = (sender as Button).NamingContainer as GridViewRow; TextBox txt=gvr.FindControl("txt") as TextBox;
GridViewRow row = ((Control)e.CommandSource).BindingContainer as GridViewRow;
if (e.CommandName == "Insert")
{
int id = int.Parse(e.CommandArgument.ToString());
string str = ((TextBox)row.FindControl("TextBox3")).Text;
Button btn=sender as Button();
GridViewRow gvr = (sender as Button).NamingContainer as GridViewRow;
TextBox txt=gvr.FindControl("txt") as TextBox;
把指定ButtionFile的CommandName属性值,然后转换成模板列就可以传参数了模板列页面代码:
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandArgument='<%# Eval("teacherId", "{0}") %>' CommandName="aaa" Text="按钮"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>然后再GridView的RowCommand获取当前按钮的参数就可以了
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName=="aaa")
{
string str = e.CommandArgument.ToString();
}
}
不过最好用LinkBotton按钮,或者图片按钮,弄个图片样式就可了,这样方便传递参数 ,GridViw的几个事件作用不一样哟,