簡體   English   中英

從javascript調用asp.net codebehind函數

[英]calling asp.net codebehind function from javascript

我有一個名為LinkControl的自定義控件:

<asp:Panel runat="server">
<script language="javascript" type="text/javascript">
    function CheckImage() {
        var str = document.getElementById('<%=lblBookmarkId.ClientID%>').firstChild.nodeValue;
        PageMethods.CodebehindCheckImage(str);
        return false;
    }
</script>
<asp:Label runat="server" ID="lblBookmarkId" Style="visibility: hidden;" />
<asp:Button runat="server" ID="btnCheck" Text="Check" OnClientClick="return CheckImage();"                                        CausesValidation="false""/>
</asp:Panel>

該控件用於轉發器內的Page Bookmarks,放在轉發器內的每個控件具有不同的lblBookmarkId.Text值。

代碼隱藏頁書簽具有功能:

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static bool CodebehindCheckImage(string str)
{
   return true;
}

問題是,當我按btnCheck按鈕以查看Repeater內的任何控件時,當我在CodebehindCheckImage函數中進行調試時,我總是會得到包含在Repeater中的最后一個控件中的字符串lblBookmarkId.Text。

歡迎大家提出意見。

關於Wojciech

您可以像下面那樣修改您的javascript函數;

    function CheckImage(str) {
        PageMethods.CodebehindCheckImage(str);
        return false;

    }

並在中繼器中更改代碼以附加到onclientClick,如下所示

<asp:Button runat="server" ID="btnCheck" Text="Check" 
 OnClientClick='<%# Eval("BookMarkText", "return CheckImage(\"{0}\");") >

其中“ BookMarkText”與您使用書簽標簽綁定的內容相同。 因此也無需使用隱藏的書簽標簽。

暫無
暫無

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

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