-1

我正在使用它将值从 ascx 代码隐藏传输到具有 3 个标签的 ascx 用户控件

 string text1 = fr.data[0].name;
        string text2 = m.data[0].name;
        string text3 = m.data[0].name;
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), " ", "document.getElementById('lblfriend').innerHTML ='" + text1 + "'; return true;", true);
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), " ", "document.getElementById('lblmyname').innerHTML ='" + text2 + "'; return true;", true);
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), " ", "document.getElementById('lblmyname1').innerHTML ='" + text3 + "'; return true;", true);

但是值没有被传递,我想将这些标签呈现为 Html,以便它们可以嵌入到电子邮件中

请帮忙!

4

3 回答 3

4

看看渲染的页面,你确定你的控件被命名lblFriend了等等,我假设他们有更多的东西。

您可能需要使用

"document.getElementById('" + lblfriend.ClientID + "').innerHTML ='
于 2012-04-06T12:35:25.503 回答
1

您可以在 UserControl 的代码隐藏中将标签文本公开为字符串属性。然后,当您呈现用户控件时,将值传递给它,它将呈现标签的文本。

UserControl 的代码隐藏:

public partial class WebUserControl1 : System.Web.UI.UserControl
{
    private string _Friend;

    public string Friend
    {
        get
        {
            return _Friend;
        }
        set
        {
            _Friend = value;
            lblfriend.Text = value;
        }
    }

    private string _MyName;

    public string MyName
    {
        get
        {
            return _MyName;
        }
        set
        {
            _MyName = value;
            lblmyname.Text = value;
            lblmyname1.Text = value;
        }
    }

}

然后你可以在你的父控件/页面中加载你的值:

        string text1 = fr.data[0].name;
        string text2 = m.data[0].name;                    
        MyUserControl.Friend = text1;
        MyUserControl.MyName = text2;
于 2012-04-06T12:50:43.490 回答
0

仅使用控件的 ClientID 编写一个 RegisterClientScript,例如

String.Format(Page.ClientScript.RegisterClientScriptBlock(this.GetType(), " ", "document.getElementById('{0}').innerHTML ='" + text1 + "'; document.getElementById('{1}').innerHTML ='" + text2 + "';document.getElementById('{2}').innerHTML ='" + text3 + "'; return true;", true),lblfriend.ClientID,lblmyname.ClientID,lblmyname1.ClientID);

或者

String.Format(Page.ClientScript.RegisterClientScriptBlock(this.GetType(), " ", "{3}('{0}').{4} ='{5}'; {3}('{1}').{4}='{6}';{3}('{2}').{4}='{7}'; return true;", true),lblfriend.ClientID,lblmyname.ClientID,lblmyname1.ClientID,"document.getElementById","innerHTML",text1,text2,text3);
于 2012-04-06T13:39:27.247 回答