Dynagicznie robię kontrolę użytkownika.

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; 

Nakrętka Teraz chcę dostać identyfikator tekstu z kontrolą użytkownika w zewnętrznym JavaScript, może pomóż mi uzyskać identyfikator kontroli.

2
Haseeb Khan 19 grudzień 2011, 23:25

4 odpowiedzi

Najlepsza odpowiedź

Mam rozwiązanie tego problemu, wystarczy użyć JavaScriptSerialializer, aby uzyskać identyfikator klienta Dynamiczny kontrolę jego bardzo dobre podejście, ponieważ rejestracjaClientscript to meth, który zapisuje ciąg z serializatora JavaScript na stronie, możesz łatwo uzyskać żądany identyfikator JavaScript, S Kontroli dynamicznej

0
Haseeb Khan 26 grudzień 2011, 18:45

Spróbuj tego $get("<%=lblDistance.ClientID%>")

2
Maysam 20 grudzień 2011, 07:57

Identyfikator obiektu klienta można znaleźć w obiekcie ClientID. Na przykład, możesz ukryć kontrolę o nazwie txtDistance za pomocą jQuery w stronę {x2}} jak:

$('#<%= lblDistance.ClientID %>').hide();
1
Andomar 19 grudzień 2011, 19:29

Jeśli używasz .NET 4.0 Dodaj ClientMode = "statyczny" do sterowania.

Coś jak:

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

W przypadku poprzedniej wersji .NET, ponieważ używasz zewnętrznego JavaScript, masz dwie opcje

  1. Użyj ukrytych wejść, aby przechowywać klientId
  2. Wyświetl HTML wyprodukowany przez stronę i użyj tych identyfikatorów w swoich zewnętrznych JavaScripts
0
Emmanuel N 19 grudzień 2011, 20:12