提问人:JeromeLeg 提问时间:11/17/2023 更新时间:11/17/2023 访问量:14
按钮动态创建的点击事件不起作用
Button dynamicaly created click event not working
问:
我想创建许多具有不同文本和背景的按钮,当我单击这些按钮时,我想将此按钮的文本和颜色传输为另一个函数的参数。
但是 Dynamicaly Created Button 在单击时调用 PostBack,而不是执行他的 on click 事件
这是我用于创建按钮的代码隐藏:
for (int i = 0; i < elem; i++)
{
decimal vol = Convert.ToDecimal(DT.Rows[Liste[j]].ItemArray[3].ToString());
TableRow rowct = new TableRow();
TableCell CT1 = new TableCell();
var button = new Button
{
ID = "Button" + Moda + j,
CssClass = "TimatButton",
CommandArgument = DT.Rows[Liste[j]].ItemArray[6].ToString(),
Text = DT.Rows[Liste[j]].ItemArray[1].ToString(),
BackColor = System.Drawing.ColorTranslator.FromHtml(DT.Rows[Liste[j]].ItemArray[6].ToString()),
ForeColor = System.Drawing.ColorTranslator.FromHtml(DT.Rows[Liste[j]].ItemArray[8].ToString()),
BorderColor = System.Drawing.ColorTranslator.FromHtml(DT.Rows[Liste[j]].ItemArray[6].ToString()),
CommandName = "Load_Items",
};
if (vol != 1)
{ button.CssClass = "TimatCutButton"; }
CT1.Controls.Add(button);
AsyncPostBackTrigger Trig = new AsyncPostBackTrigger();
Trig.ControlID = button.ID;
Trig.EventName = "Click";
UpdatePanel2.Triggers.Add(Trig);
j += 1;
protected void Load_Items(object sender, EventArgs e)
{
Button a = sender as Button;
System.Diagnostics.Debug.WriteLine(a.Text);
}
其实void Load_Items只是为了测试代码
和前面
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
</asp:ScriptManager>
<div style="width:100%;height:20%;display:flex;flex-direction:row">
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
<asp:HiddenField runat="server" ID="Colortxt" />
<asp:HiddenField ID="Txtt" runat="server"/>
<table>
<tr >
<td class="BoxModality">
<h4 style="text-align:center;color:darkblue">CT</h4>
<asp:table ID="tableCT" runat="server" style="margin:auto"></asp:table>
</td>
<td class="BoxModality">
<h4 style="text-align:center;color:darkblue">RX</h4>
<asp:table ID="tablerx" runat="server" style="margin:auto"></asp:table>
</td>
<td class="BoxModality">
<h4 style="text-align:center;color:darkblue">IRM</h4>
<asp:table ID="tableIRM" runat="server" style="margin:auto"></asp:table>
</td>
<td class="BoxModality">
<h4 style="text-align:center;color:darkblue">SENO</h4>
<asp:table ID="tableSeno" runat="server" style="margin:auto"></asp:table>
</td>
<td class="BoxModality">
<h4 style="text-align:center;color:darkblue">MN</h4>
<asp:table ID="tableMN" runat="server" style="margin:auto"></asp:table>
</td>
<td class="BoxModality">
<h4 style="text-align:center;color:darkblue">ANGIO</h4>
<asp:table ID="tableXA" runat="server" style="margin:auto"></asp:table>
</td>
<td class="BoxModality">
<h4 style="text-align:center;color:darkblue">Secrétaires</h4>
<asp:table ID="tableSec" runat="server" style="margin:auto">
</asp:table>
</td>
<td class="BoxModality">
<h4 style="text-align:center;color:darkblue">No Prest</h4>
<asp:table ID="tableNOP" runat="server" style="margin:auto"></asp:table>
</td>
<td style="margin:auto" >
<asp:Button id="RunNewTimat" runat="server" OnClick="RunNewTimat_Click" Text="New Timat" CssClass="MiniButton"/>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div>
在此之前,我的代码可以在 FrontSide 创建的按钮上运行良好。
非常感谢您的帮助
答: 暂无答案
评论