2012-01-25 8 views
-2

私は.net 4.0フレームワークで簡単なwebformを書いています。クライアントIDがasp.netコントロールのために生成されていません

<body> 
    <form id="form1" runat="server"> 

    <div> 
     <span>Name</span> 
     <asp:TextBox ID="txtName" runat="server"></asp:TextBox> 
    </div> 
    <div> 
     <span>Email</span> 
     <asp:TextBox ID="txtEmail" EnableViewState="false" runat="server"></asp:TextBox> 
    </div> 
    <div> 
     <asp:Button ID="btnButton" runat="server" Text="Submit" /> 
    </div> 
    </form> 
</body> 

フォームがブラウザでレンダリングされるときに、私はサーバーサイドコントロールのClientIDを取得しません。これは私にとっては奇妙です。ブラウザでのマークアップの 部分にはクライアントIDがない

<div> 
     <input type="submit" name="btnButton" value="Submit" id="btnButton" /> 
    </div> 

注意あります。

編集:クライアントID 'ctl00 $ MasterPageBody $ ctl00 $ btnButton2'

+0

生成されたマークアップのId属性の値がクライアントIDです。 – adatapost

+0

そのようなクライアントIDは、ASP.NETバージョン4.0ではあまり必要ではありません。ありがたいことに、より単純な文書構造で作業する場合、クライアントIDはずっと簡単になります。それがあなたに伝えていることを信じてください。 –

+1

私はそれが無効な質問ではないと思います。私は今、ネット4.0のフレームワークがCliendIdModeを持っているという事実を知らなかった。 –

答えて

0

ClientIDは、サーバ側属性です。

あなたはID属性としてクライアントにClientIDを見るでしょう:

id="btnButton" 
+0

'ctl00 $ MasterPageBody $ ctl00 $ btnButton2'のようなもの –

+0

@vaibhav - この種の 'id'を生成するという保証はありません。 – Oded

+0

私はこれらのIDに基づいていくつかのjavascriptを書こうとしています。フレームワークがどのような種類のIDを生成するのか、どうすればわかりますか? –

0

クライアントIDがサーバー上で計算されるようなものは、それがクライアントに送信されることは決してありません。

+0

はい、私は知っています、ページマークアップはサーバー自体から生成されています。 –

0

あなたは

+0

上記の例では、すでに –

+0

があります。入力コントロールにrunat = serverはありません。 –

1

クライアントID述べた理由のための制御のためのクライアントIDを生成するにrunat =「server」を必要としますボタンのbtnButtonです。もう1つの "ctl ..."は、あなたがマスターページの中にあなたのコントロールを持っているときです。一面ではない:asp.netであなたのIDを変更するwan'tをしないなら、あなたはclientidmode = 'static'を設定することができます。

関連する問題