我的视图状态属于以下值:
string temp;
ViewState["temp"] = dc.ColumnName.ToString();
这会返回工作日,例如:Monday,tuesday,wednesday
等
现在我在这里使用这个值:
string a = "txt" + ViewState["temp"].ToString();
TextBox a = new TextBox();
但它给了我错误
无法隐式转换类型&System; Web.UI.WebControls.Textbox'到'字符串'
我想要动态地设置像txtmonday,txttuesday
这样的文本框变量名称。
有什么办法可以分配变量名吗???
答案 0 :(得分:3)
如果您想要集合值,请使用集合...例如一个List<T>
或Dictionary<TKey, TValue>
。例如,您可以使用List<TextBox>
(可通过索引访问)或Dictionary<string, TextBox>
来访问字符串键("monday"
,"tuesday"
或您想要的任何内容)
如果您实际上只是创建了一个单 TextBox
,那么变量名是什么意思?只需使用:
TextBox textBox = new TextBox();
// Do appropriate things with the TextBox, possibly using ViewState
变量名只是为您提供了一种引用变量的方法。这就是它的全部。您创建的对象并不知道哪些变量(如果有)包含对它的引用。
答案 1 :(得分:0)
您可以不在运行时以您尝试的方式声明对象。您可以在星期一从索引0
和星期日在索引6
处将数据/ List<T>
中的工作日存储起来。您可以使用所需的字符串名称给出元素的ID。
List<TextBox> weekList = new List<TextBox>();
weekList.Add(new TextBox());
weekList[0].ID = "txt" + ViewState["temp"].ToString();