[英]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.