2010-10-03 82 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 = ""; 
     }