-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 を 1 つだけ記述します。

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 に答える