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!";
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";
}
}
}
的类型的serverx_spooler_Status
可能是一个Label
(在问题未示出),其具有Text
字段,所以serverx_spooler_Status.Text
是有效的。
该类型的strLabelID
是string
(第一包),其中没有一个Text
字段,因此获得strLabelID.Text
无效
尝试:
strLabelID = String.Format(strServiceName);
这将的值更改strLabelID
到的strServiceName
(基本上相同: strLabelID = strServiceName;
如果你真的要更新一个标签,你将需要类型的对象Label
,在这里你可以访问Text
字段更新(只是躺在你用做serverx_spooler_Status
)。 如果你有,你可以使用任何其他标签对象代码的夹杂物不显示。
我认为这是你在找什么: -
Label.Text =的String.Format( “{0} _ {1} _Status”,strServerName,strServiceName);
这应该工作。
或者,你可以说: -
串strLabelID =的String.Format( “{0} _ {1} _Status”,strServerName,strServiceName);
label1.Text = strLabelID;
不太清楚你的意思。 希望这可以帮助。
我想,这可能会有帮助。
你将需要做的是通过项目中的所有标签循环,直到你找到一个匹配这样的: -
串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'