2009-09-28 56 views
3

我使用C#.NET中访问内用户控件文本框用户控件 - Web表单

我有我的网页表单中的不同意见,这些都普遍显示,除了三个文本框(到达/可见/出发时间)不同的信息。为了尝试减少代码,我创建了一个包含这三个文本框的UserControl。

我引用了我的webform顶部的UserControl,也在每个视图中。

<%@Register TagPrefix="uc1" TagName="userTimes" Src="~/usercontrols/userTimes.ascx"%> 
<uc1:userTimes id="userAppointmentTimes" runat="server"></uc2:userTimes> 

似乎无法从后面的代码访问文本框。我需要首先填充文本框,并且如果更改,还需要将任何更新的信息重新插入到数据库中。

而且每个文本框有两个验证控件:

  1. 首先确保它在时间上是 格式HH:MM
  2. 其次确保到来是 的上线时间等

我的两个问题是:

  1. 我该如何访问用户控件从 后面的代码?我已经读过,我 需要使用FindControl,但我不知道为什么,当我知道 它叫什么。
  2. 我是否在后面的UserControl 代码或网络表单代码 后面进行验证 (服务器端)?

在此先感谢您的帮助。你的情况userAppointmentTimes -

克莱尔

回答

3

1)你可以通过它的ID从页面的代码背后访问用户控制。要访问Web窗体中的文本框,您需要在用户控件级别使用FindControl-Method。所以像userAppointmentTimes.FindControl(“WhateverTextBoxID”)应该工作。当然你需要将结果转换为TextBox。

您无法访问文本框,因为ASP.Net不会自动为您显示它们。所以或者你可以提供公共属性来设置/从你的用户控件中的文本框获取值。

在用户控件中,您可以通过它们的ID访问您的文本框。

2.)将验证控件放入您的用户控件中。

通过webform你的意思是它的所有内部的asp.net窗体标签,或者你有一个asp.net窗体像嵌套在里面的FormView?如果后者为真,则需要在FormView级别使用FindControl - formView.FindControl(“userAppointmentTimes”)。否则,用户控件可以通过它的ID从页面级访问。