簡體   English   中英

asp.net linkbutton onclientclick和postback

[英]asp.net linkbutton onclientclick and postback

使用帶有OnClientClick屬性的ASP.NET LinkBut​​ton時,我遇到了一些奇怪的行為。

ASPX

<asp:DropDownList ID="test" runat="server" AutoPostBack="true">
    <asp:ListItem>test1</asp:ListItem>
    <asp:ListItem>test2</asp:ListItem>
    <asp:ListItem>test3</asp:ListItem>
</asp:DropDownList>

<asp:LinkButton CssClass="button" ID="btnDeleteGroup" runat="server">
    <img src="cross.png" alt="delete-group" width="16" height="16" />
    <span><asp:Literal ID="lblDeleteGroup" runat="server" Text="Delete" /></span>
 </asp:LinkButton>

代碼隱藏

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或其他內容的問題......

無論如何,以下工作正常:

<asp:DropDownList ID="test" runat="server" AutoPostBack="true">
    <asp:ListItem>test1</asp:ListItem>
    <asp:ListItem>test2</asp:ListItem>
    <asp:ListItem>test3</asp:ListItem>
</asp:DropDownList>

<asp:LinkButton CssClass="button" ID="btnDeleteGroup" runat="server">
    <asp:Image runat="server" ID="imgDeleteGroup" width="16" height="16" ImageUrl="cross.png" />
    <asp:Literal ID="lblDeleteGroup" runat="server" Text="Delete" />
</asp:LinkButton>

代碼背后:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM