0

たとえば、次の方法で Web コントロールを作成しています。

<dnwc:TestControl runat="server" CurrentSite="test"></dnwc:TestControl>

コードビハインド(TestControl.cs)でCurrentSiteの値を取得するにはどうすればよいですか? 私は次のようにして値を取得しようとしました:

this.Attributes["CurrentSite"]

しかし、値は null です。

解決:

回答を投稿できないため、ここに追加します。

TestControl.cs ファイルで属性を宣言する必要がありました。

public string CurrentSite
    {
        get
        {
            string s = (string)ViewState["CurrentSite"];
            return (s == null) ? "test2" : s;
        }
        set
        {
            ViewState["CurrentSite"] = value;

            //Retrieve the current site and set it as an attribute in the input tag
            inputTag.SetAttribute("data-current-site", value);
        }
    }

残念ながら、値が設定された後にしかアクセスできませんでした。インスタンスの作成後に値が設定されます。したがって、コンストラクターが呼び出された後。もともと、コンストラクターが呼び出すメソッドに値を設定する必要がありましたが、今のところこれで十分です。

4

1 に答える 1

2

1) ID をWebControl

<dnwc:TestControl runat="server" CurrentSite="test" ID="testControl"></dnwc:TestControl>

2) を使用して、ページ コード ビハインドからPage.FindControl(string id)を取得できます。Control

Control webcontrol = FindControl("testControl");

2) をキャストしControlてプロパティ値TestControlを取得します。CurrentSite

string currentSite = ((TestControl)webcontrol).CurrentSite;
于 2015-08-03T20:42:51.607 に答える