C# 如何更改母版页';从内容页删除标签而不刷新页面
我有母版页和内容页。在内容页面上有一些标签,我想在单击内容页面上的按钮时更改它的文本,而不刷新页面 Default.aspxC# 如何更改母版页';从内容页删除标签而不刷新页面,c#,asp.net,.net,updatepanel,C#,Asp.net,.net,Updatepanel,我有母版页和内容页。在内容页面上有一些标签,我想在单击内容页面上的按钮时更改它的文本,而不刷新页面 Default.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" %> <script runat="server"> protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" %>
<script runat="server">
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Label SensorTemperatureLabel = (Label)this.Master.FindControl("SensorTemperatureLabel");
if (SensorTemperatureLabel != null)
{
SensorTemperatureLabel.Text = "TEST";
}
}
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton1_Click" />
</asp:Content>
受保护的无效ImageButton1\u单击(对象发送者,ImageClickEventArgs e)
{
Label SensorTemperatureLabel=(Label)this.Master.FindControl(“SensorTemperatureLabel”);
if(传感器温度标签!=null)
{
传感器温度标签。Text=“测试”;
}
}
母版页。母版
带有标签的部分代码
<div class="sidebar">
<!-- insert your sidebar items here -->
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="SensorTemperatureLabel" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div>
如果标签不在
中,则可以使用javascript访问
var SensorTemperatureLabel = document.getElementById("<%=SensorTemperatureLabel%>");
SensorTemperatureLabel.innerHTML = "newValue";
var-SensorTemperatureLabel=document.getElementById(“”);
SensorTemperatureLabel.innerHTML=“newValue”;
否则,将生成ID,您需要
var SensorTemperatureLabel = document.getElementById("<%= this.Master.FindControl("SensorTemperatureLabel").ClientID %>");
var-SensorTemperatureLabel=document.getElementById(“”);
我为您准备了完整的解决方案,向您展示如何做到这一点
第一个样品母版。请注意,我已将ScriptManager添加到页面,目标标签位于内容模板内:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebTester.Site1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="SensorTemperatureLabel" runat="server" Text="TEMP"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebTester.WebForm1" %>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Test" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
此代码将更新母版页上的标签,而无需完整的页面回发。我希望我的答案对这种情况有所帮助 如果母版页中有名为“Label1”的标签,则 您可以像这样更改其中的值 VB
祝大家平安。是的,我现在也用这种方式解决了这个问题,但感谢您的回复,我已经忘记了内容站点的UpdatePanel。非常感谢:-)
protected void Button1_Click(object sender, EventArgs e)
{
Site1 site = this.Master as Site1;
if (site != null)
{
Label SensorTemperatureLabel = site.FindControl("SensorTemperatureLabel") as Label;
SensorTemperatureLabel.Text = DateTime.Now.ToString();
}
}
Dim lb as label= me.master.findcontrol("Label1"):lb.text="Hello worold"