ASP.Net标签在c#中的改变

本文关键字:改变 Net 标签 ASP | 更新日期: 2023-09-27 18:04:21

我通常处理c#代码,但最近开发一个asp.net页面,我有一个日历显示,用户选择他/她想要的日期。在该页上是一个asp lbl,我想显示当前选择的日期,这对我来说通常很容易,但我有麻烦引用/找到控制。我也不确定最好的方法来做到这一点,我肯定会在未来遇到这个问题。

这是我想设置lbl文本,并尝试使用FindControl方法,但它不适合我,认为它可能嵌套,因为我有一些div ?

 public void Calendar1_SelectionChanged(object sender, System.EventArgs e)
    {
        Control Lbl = FindControl("inputField");
        if (Lbl != null)
        {
            //Control mycontrol2 = Lbl.Parent;
            Lbl.Text = Calendar1.SelectedDate.ToShortDateString();
        }   

,这是在asp。

  <div id="date">

         <input type="text" size="12" id="inputField"   />
        <script>
            $("#inputField").click(function () {
                $("#box").show("slow");
            });
</script>
    </div>

我如何完成设置日历的输入字段文本。SelectedDate ?。(以及你自己发现的任何技巧,如果有的话,作为良好的练习)

谢谢你的帮助。

ASP.Net标签在c#中的改变

你为什么不使用asp:Label?你找不到"标签",因为它是一个html控件,又名客户端控件。使用<asp:Label id="lblCal" runat="server"...,你应该没有问题,改变它的文本后面的代码:

lblCal.Text = Calendar1.SelectedDate.ToShortDateString();

Net只认为服务器标签是c#级别可用的控件。

所有div和其他标签都只是Asp. js的纯文本。. Net中,它们将不会在控件层次结构中被考虑。

使Asp。如果在服务器中考虑它,则在感兴趣的标记上放置runat="server"属性。它们将在代码后面通过放置在id属性中的名称来访问。

Asp。Net将永远无法在示例代码中找到'inputField'。

解决方案:

要解决您的问题,我建议您使用Asp。Net WebForm控件TextBox…如果你想要的是input:

<asp:TextBox runat="server" id="inputField" />
通过这样做,您将能够访问inputField,在代码后面的名称:
inputField.Text = Calendar1.SelectedDate.ToShortDateString();