asp.net linkbutton onclientclick和postback
使用带有OnClientClick属性的ASP.NET LinkButton时,我遇到了一些奇怪的行为。
ASPX
test1 test2 test3
代码隐藏
protected void Page_Load(object sender, EventArgs e) { btnDeleteGroup.OnClientClick = "return confirmAction('delete?');"; }
没有OnClientClick,一切都很好。 使用OnClientClick,我的LinkButton在发生回发时消失(使用DropDownList)。
在另一个主题中 ,我找到了一个将EnableViewState设置为false的解决方案。 但我正在编写的应用程序是多语言的,所以当EnableViewState设置为“false”时,我也失去了我的翻译。
if ( !Page.IsPostBack ) { // translate all form elements TranslationUI(); }
我宁愿不在!Page.IsPostBack方法之外调用此方法,因为TranslationUI-method()基于数据库转换表单元素。
我做了一些测试 – 我认为问题是,你需要确保LinkButton中的所有嵌套标签都是服务器端控件(即添加runat="server"
或更改为相关的.net控件,例如将img
标签更改为asp:Image
)。 如果LinkButton中没有非服务器端标记,则必须存在设置其ViewState或其他内容的问题……
无论如何,以下工作正常:
test1 test2 test3
代码背后:
protected void Page_Load(object sender, EventArgs e) { btnDeleteGroup.OnClientClick = "return confirm('delete?');"; }