抓住我的头脑。在下面代码的呈现HTML中,btnEdit(在GridView中)在onclick参数中具有正确的Javascript(onclick =“javascript:WebForm_DoPostBack ...”)。 btnAddNew根本没有onclick处理程序。为什么? 没有编译或运行时错误,页面使用具有Form标签的母版页。
<ContentTemplate>
<asp:ImageButton ID="btnAddNew" SkinID="btnAddNew" runat="server"
PostBackUrl='<%# "EditUser.aspx?action="+Constants.actionAdd %>' />
<asp:GridView ID="UserGridView"
runat="server"
DataKeyNames="UserId"
>
<Columns>
<asp:TemplateField
<ItemTemplate>
<asp:ImageButton id="btnEdit" SkinID="btnEdit" runat="server"
PostBackUrl='<%# Eval("UserId", "EditUser.aspx?
action="+Constants.actionEdit+"&uid={0}") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 0 :(得分:4)
看起来您不需要btnAddNew按钮的数据绑定标记(&lt;%#)。因此,您可以在服务器端分配此属性:
btnAddNew.PostBackUrl = "EditUser.aspx?action=" + Constants.actionAdd;