2011-03-17 3 views

답변

3

예, 가능합니다. ArrayList의 필요와 내용 (어떤 종류의 객체를 포함합니까?)에 따라 그리드보기에서 열을 지정하고 식에 바인딩 한 다음 코드 뒤에 입력하십시오.

myGrid.DataSource = myArrayList; 
myGrid.Databind(); 
+1

나는 arraylist 안에 문자열 목록 만 있습니다. 표현식에 바인딩함으로써 무엇을 의미합니까? 좀 더 밝혀 주실 래요? 감사합니다 –

+1

Gridview Amazing Link Microsoft 제공 http://msdn.microsoft.com/en-us/library/vstudio/ms228113(v=vs.90).aspx –

2

ArrayList를 만든 후에는 arraylist를 데이터 테이블에 추가하고 데이터 테이블을 Gridview에 바인딩하면됩니다. 그런 다음 디자인 페이지에서 AutoGenerateColumns 속성을 "true"로 언급합니다. 다음 코드처럼

: 디자인 페이지에서 : 코드 숨김에서

<asp:GridView ID="gvarray" runat="server" Width="328px"> 
    <Columns> 
      <asp:TemplateField HeaderText="Select One"> 
       <ItemTemplate> 
        <asp:Label ID = "rdoday" runat = "server" text = '<%# DataBinder.Eval (Container.DataItem, "Item") %>' /> 

       </ItemTemplate> 
      </asp:TemplateField> 
    </Columns> 

:

ArrayList Array_L = new ArrayList(); 
     Array_L.Add("One"); 
     Array_L.Add("two"); 
     Array_L.Add(2); 
DataTable dt = new DataTable(); 
dt.Columns.Add("Name"); 
for (int i = 0; i < Array_L .Count();i++) 
{ 
    dt.Rows.Add(); 
    dt.Rows[i]["Name"] = Array_L [i].ToString(); 
} 
gvarray.DataSource = dt; 
gvarray.DataBind(); 
1

당신의 SqlDataSource에서 모든 데이터를 얻을 수있는 새로운 ArrayList를 만들 수 있습니다. 그런 다음 데이터 테이블을 사용하여 ArrayList의 데이터를 지정된 열과 격자보기 행에 삽입 할 수 있습니다.

ArrayList myList = sampleController.getDataFromTable(); 
     DataTable dataTable = new DataTable(); 
     DataColumn dataColumn; 
     dataColumn = new DataColumn("UserID"); 
     dataTable.Columns.Add(dataColumn); 
     dataColumn = new DataColumn("Username"); 
     dataTable.Columns.Add(dataColumn); 
     dataColumn = new DataColumn("MobileNo"); 
     dataTable.Columns.Add(dataColumn); 
     dataColumn = new DataColumn("Address"); 
     dataTable.Columns.Add(dataColumn); 

     foreach (object str in myList) 
     { 
      Customer customer= new Customer(); 
      customer= (Customer)str; 
      DataRow dataRow = dataTable.NewRow(); 
      dataRow[0] = customer.DailyRunNo; 
      dataRow[1] = customer.Area.Name; 
      dataRow[2] = customer.Employee.EmployeeName; 
      dataRow[3] = customer.SalStatus; 

      dataTable.Rows.Add(dataRow); 
     } 
     gvCustomer.DataSource = dataTable; 
     gvCustomer.DataBind();//Bind datatable 

다음 ASPX 디자인 페이지에 있습니다 :

데이터 바인딩 할 때의 ArrayList를 사용하는 논리적하지
<asp:TemplateField HeaderText="User ID"> 
         <ItemTemplate> 
          <asp:Label ID="lblDailyRunNo" runat="server" Text='<%# Eval("UserID") %>' /> 
         </ItemTemplate> 
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="UserName"> 
         <ItemTemplate> 
          <asp:Label ID="lblAreaNo" runat="server" Text='<%# Eval("Username") %>' /> 
         </ItemTemplate> 
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="Mobile Number"> 
         <ItemTemplate> 
          <asp:Label ID="lblSalespersonName" runat="server" Text='<%# Eval("MobileNo") %>' /> 
         </ItemTemplate> 
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="Address"> 
         <ItemTemplate> 
          <asp:Label ID="lblStatus" runat="server" Text='<%# Eval("Address") %>' /> 
         </ItemTemplate> 
        </asp:TemplateField> 
0

이 표 구조에

다음 파일 뒤에 코드 . 데이터가 드롭 다운 또는 ListView 컨트롤과 바인딩되어야 할 때 ArrayList를 사용합니다.

데이터를 gridview/datalist/DataList 컨트롤에 바인딩하려면 DataTable/Dataset을 사용하거나 LIST ex : LIST를 사용할 수있는 것이 더 좋습니다.

여기에 gridview를 사용한 Datatable에 대한 예가 하나 있습니다.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.IO; 
using System.Data.OleDb; 
using System.Collections; 

namespace TestApp 
{ 
    public partial class MyWebPage: System.Web.UI.Page   
    { 
     static string GetConnectionString() 
     { 
      return ConfigurationManager.ConnectionStrings["myConnString"].ConnectionString; 
     } 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       BindData(); 
      } 
     } 

     private void BindData() 
     { 
      string connstring = GetConnectionString(); 
      using(SqlConnection cn = new SqlConnection()) 
      { 
       string query = "your sql query"; 
       SqlDataAdapter da = new SqlDataAdapter(query,cn); 
       cn.Open(); 
       DataTable dtMyTable = new DataTable(); 
       da.Fill(dtMyTable); 
       GridView1.DataSource = dtMyTable; 
       GridView1.DataBind(); 
       } 
      } 
     } 
    }