[英]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.