簡體   English   中英

C#中的ASP.Net標簽更改

[英]ASP.Net Label change in C#

我通常在處理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>

如何完成將inputfield文本設置為Calendar.SelectedDate?。 (以及良好實踐中遇到的所有提示)

謝謝你的幫助。

為什么不使用asp:Label的任何原因? 您找不到“標簽”,因為它是html控件,也就是客戶端控件。 使用<asp:Label id="lblCal" runat="server"... ,在后面的代碼中更改其文本應該沒有問題:

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

Asp.Net僅將服務器標簽視為C#級別上可用的控件。

所有這些DIV和其他標簽只是Asp.Net的純文本,在控制層次結構中將不考慮它們。

要使Asp.Net在服務器中考慮它,請將runat="server"屬性放在您感興趣的標簽上。 id屬性中放置的名稱后面的代碼中,將可以訪問它們。

Asp.Net將永遠無法在示例代碼中找到“ inputField”。

解:

為了解決您的問題,我建議您使用一個稱為TextBox的Asp.Net WebForm TextBox ...如果要input

<asp:TextBox runat="server" id="inputField" />

這樣,您將能夠在名稱后面的代碼中訪問inputField

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM