在DataSet
我有4列。在按钮单击中,我必须在文本框中显示整个一列值
动态。就像我们看到FB
条评论一样,所有评论都会动态显示在textboxes
中。
请帮我。
我对SW更新鲜了。>
ds = l2.messageshow(); //drag the data into ds
Convert.ToInt32(ds);
int linenum = 0;
foreach (int x in ds)
{
}
当我使用上面的代码时,我收到以下错误:
foreach语句不能对类型数据集
的变量进行操作
答案 0 :(得分:0)
尝试以下代码
ds=l2.messageshow();//drag the data into ds
Convert.ToInt32(ds);
int linenum = 0;
foreach (DataRow row in ds.Tables[0].Rows) //Change Here
{
//Your code
}
您无法将整个DataSet
转换为int
,以使号码号码使用DataRow
来逐行获取DataSet
行的数据
修改强>
如果您只希望DataSet
中的一列在textbox
中显示,请使用以下代码
if(ds.Tables[0].Rows.Count>0)
{
txtBox.Text=ds.Tables[0].Rows[0]["ColumnName"].ToString();
}
我假设您的DataSet
只有一个表,一个Row
如果要动态显示textboxes
中的整列,可以动态创建文本框并为其分配数据集值,尝试下面的代码,
ds=l2.messageshow();//drag the data into ds
int linenum = ds.Tables[0].Rows.Count;
TextBox[] textbox= new TextBox[linenum]; //Modified line
for (int i = 0; i < linenum; i++)
{
textbox[i] = new TextBox();
textbox[i].ID = "textbox[" + i + "]";
PlaceHolder1.Controls.Add(textbox[i]);
textbox[i].Text=ds.Tables[0].Rows[i]["ColumnName"].ToString();
}
请记住动态控件将在回发后丢失以保留它,请遵循此示例how-to-retain-values-of-dynamically或此示例Dynamic Controls in Placeholder lossed after postback
答案 1 :(得分:0)
据我了解您的要求,您希望动态显示文本框中的整个列行。
我们假设您不知道数据集会有多少行。那么你创建的文本框动态地等于数据集行的数量呢?
让我们拥有一个包含一个TextBox的用户控件。
实施步骤:
代码:
foreach(var row in DataSet.Tables[0].Rows)
{
UserControl objCtrl = new UserControl();
objCtrl.Controls["Your TextBox Id Here"].Text = row["ColumnName"].ToString();
Panel.Controls.Add(objCtrl);
}
如果问题仍然存在,请发表评论。