2010-10-03 80 views
0
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Script2.aspx.cs" Inherits="Javascript.Script2" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<script language="javascript" type="text/javascript"> 
    function ClearValue(Text1, Text2) { 
     var txtClear1 = document.getElementById(Text1); 
     var txtClear2 = document.getElementById(Text2); 
     if (txtClear1 != null || txtClear2 != null) 
     { 
      txtClear1.outerText = ""; 
      txtClear1.value = ""; 
      txtClear1.innerText = ""; 
      txtClear1.innerHTML = ""; 
      txtClear1.outerHTML = "" 

      txtClear2.value = ""; 
      txtClear2.innerText = ""; 
      txtClear2.innerHTML = ""; 
      txtClear2.outerHTML = "" 

      return false; 
     } 
    } 
    </script> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Label ID="lblError1" runat="server" Text="Label1"></asp:Label> 
     <asp:Label ID="lblError2" runat="server" Text="Label2"></asp:Label> 
     <asp:Button ID="btnClose" runat="server" Text="Button" 
      onclick="btnClose_Click" /> 
    </div> 
    </form> 
</body> 
</html> 



namespace Javascript 
{ 
    public partial class Script2 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

      btnClose.Attributes.Add("onclick", "ClearValue('" + lblError1.ClientID + "','" + lblError2.ClientID + "')"); 
     } 

     protected void btnClose_Click(object sender, EventArgs e) 
     { 

     } 
    } 
} 

這裏iam無法清除Label的文本值。清除標籤文本值

一旦我clcik button.here我trigerring清除標籤值的功能。

但文字沒有被清除。

任何想法如何解決問題。

謝謝。

+1

作爲一個經驗法則,當你有語言A(.NET這裏)動態輸出語言B(這裏是JavaScript),調試的第一步應該是檢查生成的代碼。然後你的問題變成「爲什麼.NET會輸出這個而不是那個?」或者「爲什麼JavaScript會失敗?」 - 這個答案要容易得多(並且讓更多的人回答,因爲它不需要兩種語言的知識)。 – Quentin 2010-10-03 17:58:32

+0

特別注意生成的控制ID和名稱。例如,也許Page_Load在頁面生命週期中發生的太快,以安全地訪問ClientID屬性。相反,您可能會嘗試在PreRender階段添加onclick屬性。 – 2010-10-03 18:08:46

回答

0

ASP.NET控件的ID與DOM中的id不一樣。 HTML元素的ID由ASP.NET在運行時生成。

您可以通過指定客戶端ID屬性指定DOM ID

<asp:Label ID="lblError1" ClientID="lblError1" runat="server" Text="Label1"></asp:Label> 
0

看來,標籤不適合用於這一目的。標籤改變了,客戶端不要在PostBacks上保留它們的值。使用文本框代替,並使它看起來像一個標籤,通過設置邊框寬度= 0

<asp:TextBox ID="lbl_error" BorderColor="White" BorderStyle="None" BorderWidth="0" runat="server" Width="99%"></asp:TextBox> 

然後在javascript寫這個功能

function resetlabel() { 

      document.getElementById("<%=lbl_error.ClientID%>").value = ""; 
     }