0
我正在使用foreach循環來生成content如何偵聽按鈕單擊以調用代碼隱藏功能。我無法爲ASP按鈕設置值。我應該怎麼做呢?當用戶點擊一個按鈕時,我需要他們點擊的用戶的ID來傳遞給代碼隱藏在ASP.NET中動態生成按鈕並將值傳遞給Codebehind
我正在使用foreach循環來生成content如何偵聽按鈕單擊以調用代碼隱藏功能。我無法爲ASP按鈕設置值。我應該怎麼做呢?當用戶點擊一個按鈕時,我需要他們點擊的用戶的ID來傳遞給代碼隱藏在ASP.NET中動態生成按鈕並將值傳遞給Codebehind
您可以在按鈕的CommandArgument屬性中傳遞ID,並且可以在循環內部分配onclick事件:
//for loop
//...
Button btn = new Button();
//etc
btn.CommandArgument = theID;
btn.Click += new EventHandler(btn_Click);
//...
//end for loop
protected void btn_Click(object sender, EventArgs e)
{
//Need to know which btn was clicked
Button btn = sender as Button;
if(btn == null)
{
//throw exception, etc
}
int id = Convert.ToInt32(btn.CommandArgument);
//etc
}
您可以使用運行時生成的按鈕ID將值傳遞給它。
//Counter for Dynamic Buttons.
int DynamicButtonCount = 1;
//This event generates Dynamic Buttons.
private void btnGenerate_Click(object sender, EventArgs e)
{
string name = "Dynamic Button_" + DynamicButtonCount;
Button btnDynamicButton = new Button();
btnDynamicButton.Name = name;
btnDynamicButton.Text = name;
btnDynamicButton.Id= DynamicButtonCount; //Use this id value
btnDynamicButton.Size = new System.Drawing.Size(200, 30);
btnDynamicButton.Location = new System.Drawing.Point(40, DynamicButtonCount * 40);
btnDynamicButton.Click += new EventHandler(this.btnDynamicButton_Click);
Controls.Add(btnDynamicButton);
DynamicButtonCount++;
}
//This event is triggered when a Dynamic Button is clicked.
protected void btnDynamicButton_Click(object sender, EventArgs e)
{
Button dynamicButton = (sender as Button);
MessageBox.Show("You clicked. " + dynamicButton.Name);
}