2014-10-22 3 views
0

Я генерирую html из класса в бизнес-слое. Вот мой код и его внутри цикла.Добавление управления кнопками Динамически и нажмите событие

html = html + "<tr><td>" + Convert.ToString(dr["RowNumber"]) + "</td>" + 
        "<td>" + Convert.ToString(dr["ReportName"]) + "</td>" + 
        "<td>" + Convert.ToString(dr["ReportJob"]) + "</td>" + 



        "<td>" + Convert.ToString(dr["RID"]) + "</td></tr>"; //need to a button or link button to call server side method 

Возможно ли добавить кнопки и событие click здесь.

+0

Если вы просто создаете HTML, то обязательно. Просто сгенерируйте код для кнопки так же, как вы создаете все остальное. Если вы не ссылаетесь на что-то еще. –

+0

@AriRoth Я пробовал вот так. Кнопка ButtonChange = новая кнопка(); ButtonChange.Text = "Изменить"; ButtonChange.ID = "edit_" + Convert.ToString (dr ["RID"]); ButtonChange.Font.Size = FontUnit.Point (7); ButtonChange.Click + = новый System.EventHandler (btnSubmit_click); Затем RenderControl, но не работает. , –

ответ

0

Я не уверен в вашей конкретной потребности здесь, но если я правильно понимаю, вы создаете кнопку или серию кнопок в html, которые должны иметь событие на задней панели для выполнения кода.

Что я буду делать в этом случае создать нажатие кнопки даже на заднем конце, который проверяет текст или имя кнопки вызывающего и выполняет необходимый код на основе ваших потребностей:

protected void ButtonClick(object sender, EventArgs e) 
{ 
    DoSomeCode(((System.Web.UI.WebControls.Button)sender).Text); 
} 

ИЛИ :

protected void ButtonClick(object sender, EventArgs e) 
{ 
    Switch(((System.Web.UI.WebControls.Button)sender).Text) 
{ 
    Case "Button1": 
    //Do something 
    Case "Button2": 
    //Do something else 
    etc.... 
} 
} 

при создании кнопки сделать что-то, что вы должны иметь держатель место в вашем HTML, чтобы держать кнопки, то в вашем коде позади вы просто добавить их в петлю .:

List<Button> buttonList = new List<Button>(); 
    for (int i = 0; i < 2; i++) 
    { 
     Button test = new Button(); 
     test.Text = i.ToString(); 
     test.Click += new EventHandler(ButtonClick); 

     placeholder.Controls.Add(test); 
    } 
+0

Конкатенирующая строка с кнопкой asp? Что вы написали, вы когда-нибудь пробовали? –

+0

Dazzle верен. Прошу прощения, я давно это сделал, но не проверял, когда я разместил код. Кнопки Asp.Net заменяются на входы html при визуализации, поэтому просто пощелкать один на ваш html не получится. Я скорректировал свой ответ, чтобы динамически использовать элементы управления Asp.net, если хотите. – JGTaylor

0

Да, вы можете добавить кнопку динамически, но она должна быть кнопка HTML, и вы должны стрелять кнопку

с помощью сценариев в виде

в вашем BUSSINESS слое

<td><button onClirntclick='btClick2()' id=' + Convert.ToString(dr["RID"]' text='submit') +'></button></td></tr>"; 

и в сценарии

<script type="text/javascript"> 
function btClick2() 
    { 
    return confirm('OnClientClick script: Press OK to continue.'); 
// do your work 
    } 
</script> 

потому что это займет кнопку в виде обычного текста, поэтому вы должны динамически союзницей написать кнопку HTML

надеюсь, что это поможет вам

0

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

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