2010-03-12 3 views
2

Я пытаюсь создавать элементы управления динамически на моей веб-странице, используя класс StringBuilder .. и я, похоже, не пролетел ... любая помощь будет оценена.Динамически создавать элементы управления с помощью stringbuilder

я пытаюсь это сделать ...

StringBuilder sbTest = new StringBuilder(string.Empty); 

sbTest.Append("<input type=\"text\" id=\"txt1\" runat=\"server\" />"); 

Response.Write(sbTest.ToString()); 

страница наверняка отображает текстовое поле в браузере, который легко доступен через JavaScript ... но то, что я хочу, это управление будет доступна на серверная сторона тоже ... так что, когда страница будет отправлена ​​обратно на сервер, я могу легко получить значение, введенное пользователем в текстовое поле.

Может ли один помочь мне с этим ....

спасибо так много ....

ответ

0

Вы можете получить значение из

Request["txt1"] 
1

Укажите имя-атрибута и доступ к нему с:

Request.Form["txt1"] 
2

Как Torbjörn Hansson говорит, если вы просто добавить н ame (и, возможно, удалите runat = "server" из вашего исходного фрагмента), вы сможете получить доступ к представленному значению, но вы будете иметь только HTML-код HTML </>.

Если вы желаете, чтобы динамически создавать серверные элементы управления, то вам придется сделать что-то вроде этого:

TextBox textbox = new TextBox { 
    /* take care to create unique ID's if you're adding more than 1 TextBox */ 
    ID = "foo", 
    Text = "bar" 
}; 

Controls.Add(textbox); 
2

В качестве answer почти о чем-то я ответил this

Вы должны сделать все правильно, а не пытаться изобретать колесо.

Создание элементов управления Динамически Вы можете выбрать 2 пути, .NET путь, или путь Javascript

Оба видели любой другой, другими словами, создание элементов управления с помощью .NET так, JavaScript может видеть и использовать его и наоборот.

.NET путь

в вашем HTML файле добавить что-то вроде

<body> 
    <form id="form" runat="server"> 
     <asp:PlaceHolder id="ph" runat="server" /> 
    </form> 
</body> 

в сценарии части

TextBox txt = new TextBox(); 
txt.ID = "myTxt"; 

ph.Controls.Add(txt); 

вы можете легко получить, что TextBox в JavaScript с помощью:

var myTxtValue = $("#myText").value(); 

Javascript Way

var txt = $("<input />", { 
      id : "myTxt" 
      }); 

txt.AppendTo("body"); 

в.NET вы получите значение с помощью

string value = Request["myTxt"]; 

ПРИМЕЧАНИЯ Всего JavaScript строки использует jQuery для упрощать результаты

Смежные вопросы