кнопка onclick проблема с заполнителями - PullRequest
0 голосов
/ 04 июля 2011

Я хочу создать динамическое генерирование элемента управления, и мне удалось разместить элементы управления на заполнителях. Проблема возникает, когда я пытаюсь получить информацию из элемента управления, поскольку он не "видит" элементы управления в обработчике.

т.е.
в test.aspx
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>

в коде за страницей

protected void Page_Load(object sender, EventArgs e){
TextBox txt = new TextBox();
Button btn = new Button();
btn.OnClientClick = "button_click";
//btn.Attributes.Add("onClick","button_click"); I tried this way , yet didn't work 
btn.Attributes.Add("runat","server");
PlaceHolder1.Controls.Add(txt);
PlaceHolder1.Controls.Add(btn);}

и обработчик:

protected void button_click(Object sender , EventArgs args){
string str = txt.Text; // I don't know if this would work , cuz this method didn't run onclick
 PlaceHolder2.Controls.Add(new LiteralControl("intered :"+str));
}

большое спасибо за каждый ответ,
что касается доступа к элементу управления TextBox tmp = (TextBox)PlaceHolder1.FindControl("input"); где "ввод" - это идентификатор текстового поля, который я установил

Ответы [ 3 ]

2 голосов
/ 04 июля 2011

Вы добавляете событие неверным образом.

Это должно быть похоже на добавление события на стороне сервера:

btn.Click += new EventHandler(button_click);

Вместо btn.OnClientClick = "button_click"; это путьмы обычно добавляем функцию JavaScript.

1 голос
/ 04 июля 2011

btn.Click += new EventHandler(button_click);

это код, который вы ищете


как для

btn.OnClientClick = "button_click"; //btn.Attributes.Add("onClick","button_click")

для сценариев на стороне клиента

1 голос
/ 04 июля 2011

OnClientClick относится к JavaScript, который используется для выполнения функции JavaScript на стороне клиента.Если вы хотите использовать событие Click, вы назначаете ему обработчик события, например:

btn.Click += myHandler;

Где myHandler имеет следующую сигнатуру метода:

protected void myHandler(object sender, EvetArgs e)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...