gpt4 book ai didi

c# - 使用 HTMLTextWriter 呈现服务器端控件会使控件失去标准功能(即单击事件处理程序)

转载 作者:太空宇宙 更新时间:2023-11-03 19:24:52 26 4
gpt4 key购买 nike

我想添加服务器端控件(CheckBoxLists & Button):

ChkBoxLst1 & ChkBoxLst2 & Button1 通过代码隐藏,然后使用 HTMLTextWriter 呈现控件。

我好像做不到。

Visual WebPart 中的所有上述内容。

我尝试过的:
全局:

CheckBoxList ChkBoxLst2 = new CheckBoxList();
Button Bttn2 = new Button();
Label lbl2 = new Label();

StringWriter stringWriter = new StringWriter();

页面加载:

using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
{
ChkBoxLst2.Items.Add(new ListItem("Three", "3"));
ChkBoxLst2.Items.Add(new ListItem("Four", "4"));

ChkBoxLst2.RenderControl(writer);
lbl2.RenderControl(writer);
Bttn2.Click += new EventHandler(this.Bttn2_Click);
Bttn2.Text = "Click this HTMLText WriteButton!";
Bttn2.RenderControl(writer);

}

spn.InnerHtml = stringWriter.ToString();

事件处理程序:

 void Bttn2_Click(Object sender, EventArgs e)
{
foreach (ListItem item in ChkBoxLst2.Items)
{
if (item.Selected == true)
{
if (IsPostBack)
{
lbl.Text += item.Text + ", ";
}
}
}
}

EventHandler 没有被触发,所选值也没有像我上面那样保存。关于为什么不的任何想法?我已经尝试比较两个复选框列表,但是 HTMLTextWriter 实现不起作用,而简单的 .NET 做了同样的事情
总而言之,我认为这是我对 HTMLTextWriter 的实现/我如何添加服务器控件。

请注意,spn 是标记中的文字跨度控件。

最佳答案

尝试使用此方法将控件呈现为 html 字符串:

    public static string ControlRenderToString(Control tmpControl)
{
string Content;

System.IO.StringWriter sWriter = new System.IO.StringWriter();
HtmlTextWriter htwObject = new HtmlTextWriter(sWriter);
tmpControl.RenderControl(htwObject);

Content = sWriter.ToString();
sWriter.Close();

return Content;
}

关于c# - 使用 HTMLTextWriter 呈现服务器端控件会使控件失去标准功能(即单击事件处理程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9536168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com