我使用它将值从ascx codebehind传输到具有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,以便它们可以嵌入电子邮件中
请帮忙!
答案 0 :(得分:4)
查看已呈现的页面,您确定您的控件名为lblFriend
,依此类推,我假设他们有更多的内容。
您可能需要使用
"document.getElementById('" + lblfriend.ClientID + "').innerHTML ='
答案 1 :(得分:1)
您可以在UserControl的代码隐藏中将标签文本公开为字符串属性。然后,当您渲染usercontrol时,将值传递给它,它将呈现标签的文本。
UserControl的Codebehind:
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;
答案 2 :(得分:0)
只使用控件的ClientID写入一个RegisterClientScript e.g。
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);