1

C#初心者なので優しくしてください!これは、ラベルのテキストを更新できるように、ボタンの引数を使用してラベルIDと一致する文字列を作成するコードです。

string[] commandArgs = e.CommandArgument.ToString().Split(new char[] {','});                    //Convert the buttons arguments to server/service variables
    string strServerName = commandArgs[0];
    string strServiceName = commandArgs[1];     
    string strLabelID = String.Format(strServerName + "_" + strServiceName + "_" + "Status");   //assign the strLabelID to the format: "servername_servicename_Status" for updating the label text

これは、ラベルID名が「serverx_spooler_Status」であるため直接使用した場合に機能します...

serverx_spooler_Status.Text = String.Format(strServiceName);    //update label text

「strLabelID」の値が「serverx_spooler_Status」であっても、これは失敗します。

strLabelID.Text = String.Format(strServiceName);    //update label text

調査の方向性を教えてくれたデレクに感謝します!解決策はこれでした...

 // Find control on page.
    Control myControl1 = FindControl(strLabelID);
    Label myLabel1 = (Label)myControl1;
    myLabel1.Text = "Updated Label Text!";
4

4 に答える 4

1
        string service = "winmgmt";
        string server = "DFS5600";
        string labelText = string.Format("{0}_{1)_Status", server, service);

        foreach (Control ctr in this.Controls)
        {
            if (ctr is Label)
            {
                if (ctr.Name == labelText)
                {
                    ctr.Text = "Hello Label";
                }
            }
        }
于 2012-04-13T08:48:16.487 に答える
0

私はこれがあなたが探しているものだと思います:-

Label.Text = String.Format( "{0} _ {1} _ St​​atus"、strServerName、strServiceName);

それはうまくいくはずです。

またはあなたは言うことができます:-

string strLabelID = String.Format( "{0} _ {1} _ St​​atus"、strServerName、strServiceName);

label1.Text = strLabelID;

どういう意味かよくわかりません。お役に立てれば。

于 2012-04-12T15:39:20.780 に答える
0

のタイプは、フィールドを持つ(質問には表示されていません)serverx_spooler_Status可能性があるため、有効です。LabelTextserverx_spooler_Status.Text

タイプstrLabelIDstring(最初の包含)であり、Textフィールドがないため、へのアクセスstrLabelID.Textは無効です

試す:

strLabelID = String.Format(strServiceName);

これにより、の値が次の値に変更されますstrLabelIDstrServiceName基本的にstrLabelID = strServiceName;:)

実際にラベルを更新する場合は、タイプのオブジェクトが必要になります。このオブジェクトでLabel、フィールドにアクセスしてText更新できます(嘘をついているだけですserverx_spooler_Status)。使用できる他のラベルオブジェクトがある場合、コードインクルードは表示されません。

于 2012-04-12T15:12:59.773 に答える
0

これが役立つと思います。

次のような一致が見つかるまで、プロジェクト内のすべてのラベルをループする必要があります:-

string strLabelID = String.Format( "{0} _ {1} _ St​​atus"、strServerName、strServiceName);

foreach(this.Controlsのコントロールctr){

if(ctr is Label){if(ctr.Name == strLabelID){//ここで何をするか}}}

于 2012-04-13T08:35:28.037 に答える