2012-08-29 3 views
1

이미 데이터 테이블이 있습니다. 목록보기에서 채울 필요가 있습니다. 문제는이 오류가 발생합니다 :데이터 테이블을 사용하여 목록보기를 채우려면 어떻게해야합니까?

'System.Web.UI.WebControls.ListView'에 'DisplayMember'에 대한 정의가없고 확장 메서드 'DisplayMember'에 첫 번째 인수 인 ' System.Web.UI.WebControls.ListView '를 찾을 수 있습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?)

목록보기에 "DisplayMember"속성이 있다고 생각합니까? 이것은 ASP .NET 4.0입니다.

namespace Eagle_Replication_Manager 
{ 
    public partial class wfrmMain : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      //on page load, I want to get a database table and populate this list view: 
      lvItems.DataSource = GetSourceDBs(); 

      //This does not work, error here: 
      lvItems.DisplayMember = "Description"; 
     } 

     private DataTable GetSourceDBs() 
     { 
      using (SqlConnection conn = new SqlConnection(AppVars.connectionString)) 
      { 
       using (SqlCommand cmd = new SqlCommand("SELECT [Description] FROM [Warehouse].[dbo].[Items]", conn)) 
       { 
        conn.Open(); 

        cmd.ExecuteNonQuery(); 

        using (SqlDataAdapter da = new SqlDataAdapter(cmd)) 
        { 
         using (DataTable dt = new DataTable()) 
         { 
          da.Fill(dt); 
          return dt; 
         } 
        } 
       } 
      } 
     } 
    } 
} 

답변

1

이 작동합니다 :

protected void Page_Load(object sender, EventArgs e) 
    { 
     lvItems.DataSource = GetSourceDBs(); 
     lvItems.DataBind(); 
    } 
+0

사용자 코드가 InvalidOperationException 처리하지 못했습니다. ItemTemplate은 ListView 'lvItems'에 정의되어야합니다. ItemTemplate을 설정해야하지만 옵션은 무엇입니까? – Testifier

+0

아이디어는 마크 업에서 모든 항목 등으로 을 정의해야한다는 것입니다. 그렇게하고 싶지 않으면 추가 작업없이 자동으로 테이블을 생성 할 수 있으므로 GridView를 대신 사용하십시오 . – niaher

+0

아, 알겠습니다. 내가 목록보기를 사용하는 이유는 사용자가 항목을 선택하여 자신의 선택에 따라 작업을 수행 할 수 있기 때문입니다. – Testifier

0

공공 무효 getdataToList (개체를 보낸 사람, 경우 System.EventArgs 전자) { 도록 SqlConnection CONN = 새도록 SqlConnection을 ("< <은 >> 연결 문자열을 넣어");

try { 
    lvItems.Columns.Clear() ; 
    lvItems.Items.Clear(); 

    conn.Open(); 
    txtSql.Text ="select * from Employee"; 

    SqlCommand cmd = conn.CreateCommand(); 
    cmd.CommandText = txtSql.Text; 

    SqlDataReader dr = cmd.ExecuteReader(); 

    for (int i = 0; i< dr.FieldCount; i++) { 
    ColumnHeader ch = new ColumnHeader(); 
    ch.Text=dr.GetName(i); 
    lvItems.Columns.Add(ch); 
    } 

    ListViewItem itmX; 

    while (dr.Read()) { 
    itmX=new ListViewItem(); 
    itmX.Text= dr.GetValue(0).ToString(); 

    for (int i=1 ; i< dr.FieldCount; i++) { 
     itmX.SubItems.Add(dr.GetValue(i).ToString()); 
    } 
    lvwResult.Items.Add(itmX); 
    } 
    dr.Close(); 
} catch (System.Data.SqlClient.SqlException ex) { 
    Console.WriteLine("There was an error in executing the SQL." + 
      "\nError Message:" + ex.Message, "SQL"); 
} finally { 
    conn.Close(); 
} 
관련 문제