그리드 뷰를 만들었습니다. 그리드 뷰 컬럼을 배열리스트로 바인딩 할 수 있습니까?arraylist asp.net/c#로 gridview 바인딩하기
가능한 경우 샘플 코드를 작성해주십시오.
감사합니다.
그리드 뷰를 만들었습니다. 그리드 뷰 컬럼을 배열리스트로 바인딩 할 수 있습니까?arraylist asp.net/c#로 gridview 바인딩하기
가능한 경우 샘플 코드를 작성해주십시오.
감사합니다.
예, 가능합니다. ArrayList의 필요와 내용 (어떤 종류의 객체를 포함합니까?)에 따라 그리드보기에서 열을 지정하고 식에 바인딩 한 다음 코드 뒤에 입력하십시오.
myGrid.DataSource = myArrayList;
myGrid.Databind();
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();
당신의 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>
이 표 구조에
다음 파일 뒤에 코드 . 데이터가 드롭 다운 또는 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();
}
}
}
}
나는 arraylist 안에 문자열 목록 만 있습니다. 표현식에 바인딩함으로써 무엇을 의미합니까? 좀 더 밝혀 주실 래요? 감사합니다 –
Gridview Amazing Link Microsoft 제공 http://msdn.microsoft.com/en-us/library/vstudio/ms228113(v=vs.90).aspx –