2011-11-13 3 views
1

일부 일반 목록의 데이터로 채우기 원하는 gridview가 있습니다. 필요한 (DataColumn) 열이있는 DataSource로 "DataTable"을 사용했습니다.런타임시 Gridview 채우기

GridView1.DataSource = CreateDataTable(); 

내 문제는 내가

myBoundedField.HtmlEncode = false; 

같은 것을 필요로하고 내가 열 캡션을 변경해야 내가 "를 DataColumn"를 사용하면이 모든 것이 가능하지 않다, 그래서 내 gridview에 HTML 태그가 포함되어 있습니다. BoundField에 관한 몇 가지 코드를 발견했습니다. 대신 BoundField를 사용해야하는 이유는 무엇입니까? 이점은 무엇입니까?

답변

1

새 Column()을 사용하여 그리드에 대한 열을 동적으로 만들고 값을 할당 할 수 있습니다.

코드 조각을 사용하여 지원할지 여부를 알려주세요.

+0

답장 Ankit에 감사드립니다. Column이라는 유형이 있습니까? 문제는 내가 셀에 표시하고 싶은 html 콘텐츠가 있다는 것입니다. DataColumn 형식을 사용하여 모든 단일 열을 정의하여 메모리에 내 데이터 원본을 만듭니다. –

2

GridView Column 개체를 만들어 Gridview's Columns collection에 추가하십시오. HTML을 조작하려는 것처럼 자신의 값에 대한 열에 대해 자신 만의 ItemTemplates을 만들 수 있습니다.

http://www.codedigest.com/Articles/ASPNET/168_Create_Dynamic_GridView_Control_in_C_ASPNet.aspx

http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx

http://www.dotnetfunda.com/articles/article1400-how-to-generate-gridview-columns-dynamically-based-on-user-selection.aspx

일부 제한된 열을 추가하고 rowcreated 이벤트에서 데이터에 액세스 할 수 있습니다 다음에 server.htmlDeocde(<html encoded field value>)를 사용

GridView gvDynamicArticle = new GridView(); 

    gvDynamicArticle.Width = Unit.Pixel(700); 

    gvDynamicArticle.BorderWidth = Unit.Pixel(0); 
    gvDynamicArticle.Caption = "Report View"; 
    gvDynamicArticle.AutoGenerateColumns = false; 

    gvDynamicArticle.ShowFooter = true; 

    TemplateField tf = null; 

    tf = new TemplateField(); 

    tf.HeaderTemplate = new DynamicGridViewTextTemplate("ArticleID", DataControlRowType.Header); 

    tf.ItemTemplate = new DynamicGridViewTextTemplate("ArticleID", DataControlRowType.DataRow); 

    tf.FooterTemplate = new DynamicGridViewTextTemplate(DataControlRowType.Footer, ds.Tables[i].Rows.Count);    

    gvDynamicArticle.Columns.Add(tf); 

자세한 내용은 다음 링크를 따라 그리드에 표시 .. 당신과 같은 방식으로 이 이벤트를 사용하여 HtmlEncode(<save html field value>) 행 명령에 html 코드를 저장할 수 있습니다. 다음과 같이

희망이 도움 당신은 .. HTML에서

1

은, 당신의 GridView를 정의

<asp:GriVview ... AutoGenerateColumns="false" runat="server"> 
    <Columns> 
    <asp:BoundField DataField="CustomerID" HeaderText="Customer ID" /> 
    <asp:BoundField DataField="CompanyName" HtmlEncode="false" HeaderText="Customer Name" /> 
    ... 
    </Columns> 
</asp:GridView> 

(this example에서 적응)

당신이를 지정할 수있는 방법을 볼 명백해야한다 열 캡션 (HeaderText)과 각 열의 HTML 인코딩 (HtmlEncode)이 있습니다. DataField은 데이터 테이블의 열 이름을 지정합니다.

관련 문제