2

aspxページに非表示のフィールドがあり、masterpageを使用しています。マスターページを使用しなくても、すべてが正常であり、hiddenfieldのname属性は正しいです。

<asp:HiddenField ID="apiversion" ClientIDMode="Static" runat="server" />

レンダリング後、結果のhtmlは次のようになります。

<input type="hidden" name="apiversion" id="apiversion" value="v0.01">

しかし、マスターページを使用すると、結果のhtmlは次のようになります。

<input type="hidden" name="ctl00$ContentPlaceHolder1$apiversion" id="apiversion" value="v0.01">

ただし、マスターページを使用する必要があり、名前属性は「ctl00 $ ContentPlaceHolder1$apiversion」ではなく「apiversion」として必要です。

解決策はありますか?

4

1 に答える 1

1

よくわかりませんが、これでうまくいくはずです...ドキュメントの準備ができたらname属性を変更してください..

$(document).ready(function(){
    $("#<%=apiversion.ClientID%>").attr("name","apiversion");
});

あるいは..

var arrayOfNames=[];
var actualName=$("#<%=apiversion.ClientID%>").attr("name");
arrayOfNames=actualName.split('$');

var whatYouActuallyWant=arrayOfNames[2];// This is the name you have without master page.

以下のコメントを考慮してください。更新パネルの場合のような部分的なポストバックの場合、pageLoad関数を追加します...

function pageLoad(sender,args){
     $("#<%=apiversion.ClientID%>").attr("name","apiversion");
}
于 2013-03-22T16:59:58.530 に答える