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>
そのコントロールはリピーター内のページ ブックマークで使用され、リピーター内に配置された各コントロールは lblBookmarkId.Text の異なる値を持ちます。
コードビハインド ページのブックマークには次の機能があります。
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static bool CodebehindCheckImage(string str)
{
return true;
}
問題は、リピーター内のコントロールのボタン btnCheck を押すと、関数 CodebehindCheckImage でデバッグするときに、リピーターに存在する最後のコントロールに含まれる文字列 lblBookmarkId.Text を常に取得することです。
どんな提案でも大歓迎です。
よろしくヴォイチェフ