所以,我试图动态地向网站添加一个按钮,让用户了解他们正在向表单添加什么。但是,当它呈现一个新按钮时,它一直将 value 属性提供为 "" 并忽略我添加的属性。我试图解决这个问题无济于事,包括在添加我的版本之前删除 value 属性并清除所有属性。
WebControl myControl = null;
string[] elementInfo = elementCode.Split(new char[] { ';' });
switch (elementID)
{
case 1:
myControl = new Button();
myControl.Attributes.Remove("value");
myControl.Attributes.Add("type","submit");
break;
case 2:
myControl = new TextBox();
myControl.Attributes.Clear();
myControl.Attributes.Add("type", "text");
break;
case 3:
myControl = new CheckBox();
myControl.Attributes.Clear();
myControl.Attributes.Add("type", "checkbox");
break;
}
if (myControl != null)
{
string[] properties;
if (elementCode.Length > 0)
{
foreach (string attr in elementInfo)
{
properties = attr.Split(new char[] { '=' });
myControl.Attributes.Add(properties[0], properties[1]);
}
}
return myControl;
}
else
return null;
我知道循环正在触发,并且第 2 行中返回的值是一行,“value=submit”。事实上,标记是这样产生的:
<div id="divLastElement">
<input type="submit" name="ctl03" value="" type="submit" value="Submit Me!" />
</div>
我确定这是第一个导致它为空的 [value=''] ,但是我该如何覆盖这种行为?(您可以在生成按钮的 switch 语句中看到我尝试过早删除 value 键)