<asp:GridView ID="gvInaciveQuestions" runat="server" AutoGenerateColumns="False" OnRowCommand="gvInaciveQuestions_RowCommand">
<Columns>
<asp:TemplateField HeaderText="Selelct">
<ItemTemplate>
<asp:Button ID="btnactive" runat="server" Text="Active" onClick="btnactive_Click" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Question">
</asp:Gridview>
我已将Itemtemplate添加为Button但未触发onclick
事件。
可以请任何人建议我吗?
答案 0 :(得分:1)
使用DataBind
属性在每个回发中Page.IsPostBack
,例如在Page_Load
中(恢复您用于数据绑定的方法是叫BindGridView
):
protected void Page_Load(ovject sender, EventArgs e)
{
if(!IsPostBack)
{
BindGridView();
}
}
否则事件未被触发,并且网格中的更改值将被(旧)DataSource
中的值覆盖。
答案 1 :(得分:0)
您不应在此处使用onClick="btnactive_Click"
事件,而应使用CommandName
属性。
<asp:Button ID="btnactive" runat="server" Text="Active" CommandName="Click" />
在你的OnRowCommand
代码隐藏工具中。
protected void gvInaciveQuestions_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Click")
{
//your code here
}
}
我希望这能解决你的问题。
- Harsha Ch