在asp.net gridview控件中没有触发按钮单击事件

时间:2014-05-15 06:58:10

标签: c# gridview controls

 <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事件。

可以请任何人建议我吗?

2 个答案:

答案 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