asp.net linkbutton onclientclick和postback

使用带有OnClientClick属性的ASP.NET LinkBut​​ton时,我遇到了一些奇怪的行为。

ASPX

 test1 test2 test3   delete-group   

代码隐藏

 protected void Page_Load(object sender, EventArgs e) { btnDeleteGroup.OnClientClick = "return confirmAction('delete?');"; } 

没有OnClientClick,一切都很好。 使用OnClientClick,我的LinkBut​​ton在发生回发时消失(使用DropDownList)。

在另一个主题中 ,我找到了一个将EnableViewState设置为false的解决方案。 但我正在编写的应用程序是多语言的,所以当EnableViewState设置为“false”时,我也失去了我的翻译。

 if ( !Page.IsPostBack ) { // translate all form elements TranslationUI(); } 

我宁愿不在!Page.IsPostBack方法之外调用此方法,因为TranslationUI-method()基于数据库转换表单元素。

我做了一些测试 – 我认为问题是,你需要确保LinkBut​​ton中的所有嵌套标签都是服务器端控件(即添加runat="server"或更改为相关的.net控件,例如将img标签更改为asp:Image )。 如果LinkBut​​ton中没有非服务器端标记,则必须存在设置其ViewState或其他内容的问题……

无论如何,以下工作正常:

  test1 test2 test3      

代码背后:

 protected void Page_Load(object sender, EventArgs e) { btnDeleteGroup.OnClientClick = "return confirm('delete?');"; }