我有一个Default.aspx和一个添加Default.aspx
的Web用户控件有什么办法可以在网页用户控件中更改Default.aspx中div的值吗?
例如:
<meta name="description" content="" id="MetaDescription" runat="server"/>
<meta name="keywords" content="" id="MetaKeywords" runat="server"/>
或:
<div id="test" runat="server"></div>
谢谢
答案 0 :(得分:0)
您可以更改父页面的任何控件的值,我使用以下代码为标签控件创建了示例。我已经制作了一个样品,请检查一下。
主页ASPX:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="UseUsercontrol.WebForm1" %>
<%@ Register TagPrefix="My" TagName="UserInfoBoxControl" Src="~/WebUserControl1.ascx" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<My:UserInfoBoxControl runat="server" ID="MyUserInfoBoxControl" />
<asp:Label ID="Label1" runat="server" Text="Main Page"></asp:Label>
</div>
</form>
</body>
</html>
用户控制ASCX:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="UseUsercontrol.WebUserControl1" %>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
用户控制CS:
protected void Button1_Click(object sender, EventArgs e)
{
Label parentPanel = this.Parent.FindControl("Label1") as Label;
parentPanel.Text = TextBox1.Text;
}
这里我正在更新父页面的Label控件值,其中包含用户输入的子项文本框最新值。
希望它会对你有所帮助。如果我出错了,请告诉我,我会尝试更新它。
答案 1 :(得分:0)
您可以从代码隐藏中访问潜水,但您无法操纵它的内部HTML。
如果你想广告一个div,它是来自codebehid的内部html,
创建用户控件并添加文字控件
<asp:Literal Text="" ID="literal" runat="server" />
将其添加到aspx页面
从aspx页面后面的代码
Literal litereal = MyUserControl1.FindControl("literal") as Literal;
litereal.Text = string.Format("<div id=\"test\" runat=\"server\">{0}</div>", "any text or html");