У меня есть строка gridview, которая при нажатии должна сделать postback A и кнопочное поле в той строке, которая при нажатии должна сделать postback B. Проблема в том, что когда я нажимаю на поле кнопки, как event1, так и event2 запускается. Ниже приведен код.ASP.NET Gridview ButtonField onclick пожары, содержащие событие onclick строки
protected void gdv_RowCommand(object sender, GridViewCommandEventArgs e)
{
string arg = Convert.ToString(((System.Web.UI.WebControls.CommandEventArgs)(e)).CommandArgument);
if (e.CommandName == "Command1")
{
doEvent1(arg);
}
else if (e.CommandName == "Command2")
{
doEvent2(arg);
}
}
protected void gdv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton b1 = (LinkButton)e.Row.Cells[0].Controls[0];
matchesButton.CommandArgument = arg1;
LinkButton rowLink = (LinkButton)e.Row.Cells[1].Controls[1];
rowLink.CommandArgument = arg2;
e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(rowLink, "");
}
}
И это жерех код GridView
<Columns>
<asp:ButtonField DataTextField="f1" HeaderText="H1" CommandName="Command1" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btn1" runat="server" Text="" CommandName="Command2" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
Я уже делаю это в первой части своего кода –
мой ответ обновлен –
вы не можете 'FindControl' с' GridViewCommandEventArgs' вот так. Следуйте этому [answer] (http://stackoverflow.com/a/27159747/2374691), чтобы узнать, как правильно обращаться к FindControl – Ritwik