2011-12-19 11 views
2

私は動的にユーザーコントロールを作成しています。テキストボックス外部Javaスクリプト内のユーザーコントロールのID

var controlMarkup = string.Empty; 
Page page = new Page(); 
var customControl = page.LoadControl(control) as UserControl; 
if (customControl != null) 
{ 
    var htmlForm = new HtmlForm(); 
    var output = new StringWriter(); 
    //output.Write("<div id = 'ControlName'>" + customControl + "</div>"); 
    htmlForm.Controls.Add(customControl); 
    page.Controls.Add(htmlForm); 
    HttpContext.Current.Server.Execute(page, output, false); 
    controlMarkup = output.ToString(); 
} 
return controlMarkup; 

ナット今、私は外部のJavaScriptでユーザーコントロールのテキストボックスのIDを取得したいのですが、誰でも制御のIDを取得するのに役立ちます。

答えて

0

私はこの問題の解決策を持っています。私はちょうどjavascriptserializerを使用して、動的制御のクライアントIDを取得するのは非常に良いアプローチです。なぜなら、RegisterCLientScriptはページ上のJavaScriptシリアライザから文字列を書き込むので、 、動的コントロールの

1

クライアント側IDは、ClientIDプロパティにあります。たとえば、あなたがコントロールを非表示にすることができますよう.aspxページでjQueryのを使用してtxtDistanceと呼ばれる:あなたは.NET 4.0を使用している場合

$('#<%= lblDistance.ClientID %>').hide(); 
+0

外部Javaスクリプトで動作していません –

2

は、あなたのコントロールにのClientIDMode =「静的」を追加し、この$get("<%=lblDistance.ClientID%>")

+0

外部Javaスクリプトでは動作しません –

+0

「外部」とはどういう意味ですか?これを.jsファイルで使用することはできません! – Maysam

0

をお試しください。

ような何か:.NETの以前のバージョンについては

yourControlname.Attributes.Add("ClientIDMode", "Static"); 

に、あなたは次の2つのオプション

  1. によって生成のclientIdの
  2. ビューHTMLを保存するために隠された入力を使用していjavascriptの外部使用しているので、あなたのページと外部のjavascriptsでそれらのIDを使用する
関連する問題