使用字符串变量内容标签ID更新label.Text,我得到的错误 - “串”不包含“文本”的定义(U

2019-10-16 14:21发布

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!";

Answer 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";
                }
            }
        }


Answer 2:

的类型的serverx_spooler_Status可能是一个Label (在问题未示出),其具有Text字段,所以serverx_spooler_Status.Text是有效的。

该类型的strLabelIDstring (第一包),其中没有一个Text字段,因此获得strLabelID.Text无效

尝试:

strLabelID = String.Format(strServiceName);

这将的值更改strLabelID到的strServiceName (基本上相同: strLabelID = strServiceName;

如果你真的要更新一个标签,你将需要类型的对象Label ,在这里你可以访问Text字段更新(只是躺在你用做serverx_spooler_Status )。 如果你有,你可以使用任何其他标签对象代码的夹杂物不显示。



Answer 3:

我认为这是你在找什么: -

Label.Text =的String.Format( “{0} _ {1} _Status”,strServerName,strServiceName);

这应该工作。

或者,你可以说: -

串strLabelID =的String.Format( “{0} _ {1} _Status”,strServerName,strServiceName);

label1.Text = strLabelID;

不太清楚你的意思。 希望这可以帮助。



Answer 4:

我想,这可能会有帮助。

你将需要做的是通过项目中的所有标签循环,直到你找到一个匹配这样的: -

串strLabelID =的String.Format( “{0} _ {1} _Status”,strServerName,strServiceName);

的foreach(在this.Controls控制CTR){

如果(CTR是标签){如果​​(ctr.Name == strLabelID){//不要在这里什么都}}}



文章来源: Use string variable content as label ID to update label.Text, I get error - 'string' does not contain a definition for 'Text'
标签: c# string label