C# 在asp.net 4.5 c中动态添加按钮单击事件#
我对这篇文章有一些问题[1]: 解决方案对我不起作用,我动态创建了一个按钮,它位于asp:table控制器中 我尝试将动态元素保存在会话中,并将会话值分配给页面加载中的对象,但这不起作用 一些想法 编辑:C# 在asp.net 4.5 c中动态添加按钮单击事件#,c#,asp.net,button,dynamic,C#,Asp.net,Button,Dynamic,我对这篇文章有一些问题[1]: 解决方案对我不起作用,我动态创建了一个按钮,它位于asp:table控制器中 我尝试将动态元素保存在会话中,并将会话值分配给页面加载中的对象,但这不起作用 一些想法 编辑: 。。。 按钮按钮=新按钮(); button.ID=“BtnTag”; button.Text=“Tag generieren”; 按钮。单击+=按钮\u标记Generieren; tabellenZelle.Controls.Add(按钮); 会话[“表”]=表; } public void
。。。
按钮按钮=新按钮();
button.ID=“BtnTag”;
button.Text=“Tag generieren”;
按钮。单击+=按钮\u标记Generieren;
tabellenZelle.Controls.Add(按钮);
会话[“表”]=表;
}
public void按钮\u TagGenerieren(对象发送方,事件参数e)
{
TableRowCollection选项卡ellenzeilen=qvTabelle.Rows;
for(int i=0;i
问题在于页面生命周期中创建te按钮及其事件的时刻。为此,请尝试page_init事件。将每个控件存储到会话状态不是一个好做法
我发现的唯一问题是,当页面发布回服务器时,您需要重新加载具有相同Id的控件。否则,这些控件将为空
<asp:PlaceHolder runat="server" ID="PlaceHolder1" />
<asp:Label runat="server" ID="Label1"/>
protected void Page_Load(object sender, EventArgs e)
{
LoadControls();
}
private void LoadControls()
{
var button = new Button {ID = "BtnTag", Text = "Tag generieren"};
button.Click += button_Click;
PlaceHolder1.Controls.Add(button);
}
private void button_Click(object sender, EventArgs e)
{
Label1.Text = "BtnTag button is clicked";
}
页面加载中的创建按钮
Button btn = new Button();
btn.Text = "Dynamic";
btn.Click += new EventHandler(btnClick);
PlaceHolder1.Controls.Add(btn)
按钮点击事件
protected void btnClick(object sender, EventArgs e)
{
// Coding to click event
}
首先,为什么要动态创建它?我有一个asp:面板,显示在“数据集”的详细信息中,并用事件动态填充数据,我认为您根本不需要使用会话。。。如果您更改页面的控件结构,它将自动保持。有趣的是,会话分配了正确的数据,但这并没有显示在表面上,这可能也会帮助其他人
protected void btnClick(object sender, EventArgs e)
{
// Coding to click event
}