0

CodeBehind コードを介してデータベースからデータを取得する単一の List 変数を 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;

早い段階で表示されるはずだったのですが、このグリッドビューは一度割り当てられた pullShuffledData の値をクリアしているようです

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

コメントアウトした後、クラスター値が最終的にテキストボックスに表示されました。ありがとう

于 2013-10-03T01:59:24.443 に答える