如何添加TextBox的响应? c#
我已经创建了自己的控件,其中包含作为子控件的TextBox控件。此文本框设置了自动回送。当回传被调用时,我不会在request.querrystring中获得任何文本。 我应该在哪里指定输入到texbox中的文本将被发送到响应?或者有没有更简单的方式发送这些信息?我想在回发后在文本框中再次输入文本。如何添加TextBox的响应? c#
谢谢
动态创建的控件,您需要创建他们,他们在Page_Init添加到控件树()事件; Page_Load()太晚了,而Page_PreRender()太迟了。
一旦控件树,运行时将回传后还原为您控制的状态。您可以使用myTextBox.Text
访问控件的内容 - 不需要使用Request.QueryString
对于仅包含文本框的控件,如果您使用的是用户控件而非INamingContainer,事情会更容易。这样,你可以在你的.ascx标记中使用<asp:TextBox>
。
自定义控件?像这样的任何发布的控件都会将其数据加载到LoadPostData方法中。您可以在自定义的控件类覆盖此,并从由德控制访问该值:
变种文字= postDataCollection [textboxID]
定制控件中的文本框都必须有一个ID。
如果是别的东西说话,让我知道的细节。
谢谢。
为响应您好感谢。 这是我的控制缩写代码。这个控件会导致回发,但没有回复。也许你是正确的loadpostdata,但我没有这个方法被重写在我的控制。 公共类my_control:对照,作INamingContainer { 保护覆盖无效的OnPreRender(EventArgs的发送) { 文本框mytextbox =新文本框(); mytextbox.ID =“name”; mytextbox.AutoPostBack = true; Controls.Add(mytextbox); }} 我 – user247458 2009-12-15 00:04:21
道歉。一些控件实现了这一点,但由于您是从控件继承的,因此添加名称空间IPostbackDataHandler,它将为您添加此内容,并允许您处理回发数据。你应该能够通过ID获得它......但它将是clientID或uniqueID(忘记哪一个)。 – 2009-12-17 21:17:04
- (文本框)Control.FindControl( “控件ID”)
- 在回传获取动态控制的价值的Request.Form( “控制客户端ID”)
谢谢,那很大的 – user247458 2009-12-15 07:03:22
我知道你在这里是新的,但习惯上upvote是有帮助的答案... – RickNZ 2009-12-15 09:37:44