如何从Web用户控件更改Default.aspx中的DIV?

时间:2014-08-04 05:35:58

标签: c# asp.net

我有一个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>

谢谢

2 个答案:

答案 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");