如何从render方法中创建的用户控件获取Postback的值?

时间:2009-09-21 12:08:09

标签: asp.net user-controls

我有UserControl,我需要添加(生成)一些标签,基本上是输入标签。稍后回发我需​​要从这些输入中收集值。我使用Render方法生成输入,但我不知道如何在Postback上从这些输入中获取值。我对每个输入都有唯一的ID。

代码表格渲染方法:

writer.Write(string.Format("<p>{0}</p>", Resources.CustomControls.inpCodeRestriction));
writer.RenderBeginTag(HtmlTextWriterTag.P);
writer.RenderBeginTag(HtmlTextWriterTag.Span);
writer.Write(product.Name);
writer.RenderEndTag();
TextBox tb = new TextBox();
tb.ID = string.Format("code{0}{1}", item.Id, item.ProductId);
tb.Text = string.Empty;
tb.ToolTip = Resources.CustomControls.titCodeRestriction;
tb.RenderControl(writer);
writer.RenderEndTag();

如何获取Postback上的Input值。我尝试过Page.FindControl(),但它对我不起作用。

感谢您的任何建议。

2 个答案:

答案 0 :(得分:0)

你没有。如果使用WebForms,则应在CreateChildControls方法中创建子控件。

答案 1 :(得分:0)

Page.FindControl不起作用,因为控件是显式呈现的(即,它们没有被添加到Page.Controls集合中)。

您可以检查名为id_value的键的Request.Forms集合,其中id是控件的名称。此集合包含来自WebForms的已发布数据。