0

我试图输出一个 List 变量,该变量通过 CodeBehind 代码从数据库中检索数据到 ASPX 中的文本字段:

<asp:TextBox ID="TBCluster" runat="server" CssClass="textbox"></asp:TextBox>  

使用 C#,代码如下所示:

public List<shuffleDataList> pullShuffledData(SqlDataReader rdr)
{
    List<shuffleDataList> callList = new List<shuffleDataList>();      
    if (rdr != null)
    {
         if (rdr.HasRows)
         { 
             while (rdr.Read())
             {   
                 callList.Add(new shuffleDataList()
                 {
                      cluster = rdr.IsDBNull(5) ? null : rdr.GetString(5),
                 });   
             }
         }
         else
         {
             Response.Write("<script>alert('the data is null')</script>");
             return null;
         }
     }
     return callList;
 }

用户单击特定按钮后将检索集群字段,因此我传递变量如下所示:

protected void shuffle_Click(object sender, EventArgs e)
{
   getdata();
   TBCluster.Text = new shuffleDataList().cluster;
}

但是,文本字段上不显示任何内容。在同一个查询中,我可以在数据网格视图上显示数据,但不能在文本字段上显示数据?任何想法为什么会发生这种情况?

谢谢

4

2 回答 2

0

我终于解决了我的问题:

            string cluster = string.Empty;
            DataSet ds = new DataSet();
            List<shuffleDataList> list = pullShuffledData(rdr);
            foreach(shuffleDataList item in list)
            {
                cluster = item.cluster;
            }

            TBCluster.Text = cluster;

它应该在早期显示,但这个 gridview 似乎正在清除 pullShuffledData 的值,一旦分配

         //gridviewShuffle.DataSource =  pullShuffledData(rdr);
            //gridviewShuffle.DataBind();

注释掉后,簇值终于出现在文本框上。谢谢

于 2013-10-03T01:59:24.443 回答
0

您实际上似乎并没有调用您的函数。此外,由于Text属性通常是字符串..您将无法为其分配列表(具有任何有意义的结果)。因此,我将对您的代码做出一堆假设......并给你这个:

var list = pullShuffledData(someReaderHere);

if (list != null)
    TBCluster.Text = string.Join(", ", list.Select(x => x.cluster));
于 2013-10-02T05:55:33.383 回答