gpt4 book ai didi

c# - UserControl - 在 Web 表单中访问 UserControl 中的文本框

转载 作者:行者123 更新时间:2023-11-30 16:35:49 26 4
gpt4 key购买 nike

我正在使用 c#.net

我的网络表单中有不同的 View ,除了三个文本框(到达/看到/离开时间)之外,这些通常都显示不同的信息。为了尝试减少代码,我创建了一个包含这三个文本框的 UserControl。

我在网络表单顶部以及每个 View 中都引用了 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 中代码隐藏或网络表单代码落后?

在此先感谢您的帮助。

克莱尔

最佳答案

1.) 您可以通过页面代码后面的 ID 访问用户控件 - 在您的例子中为 userAppointmentTimes。要在网络表单中访问您的文本框,您需要在用户控件级别使用 FindControl-Method。所以像 userAppointmentTimes.FindControl("WhateverTextBoxID") 这样的东西应该可以工作。当然,您需要将结果转换为 TextBox。

您无法访问文本框,因为 ASP.Net 不会自动为您公开它们。因此,您也可以提供公共(public)属性来在用户控件内的文本框中设置值/从文本框获取值。

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

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

您所说的 webform 是指它都在 asp.net 表单标签内,还是您有一个像 FormView 一样嵌套在里面的 asp.net 表单?如果是后者,则需要在 FormView 级别使用 FindControl - formView.FindControl("userAppointmentTimes")。否则,可以通过其 ID 从页面级别访问用户控件。

关于c# - UserControl - 在 Web 表单中访问 UserControl 中的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487482/

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