2011-04-13 2 views
2

이것은 간단해야하지만이 전투를 놓치고 있습니다. 나는 gridview있다. 원하는 것은 사용자가 이름을 입력 할 수 있고 추가를 클릭하고 추가 된 값을 가질 수 있기만하면됩니다. 또한 실수로 삭제 명령을 사용하려고합니다. 나는 Eval and Bind를 시도했다. 그러나 무언가가 잘못되고 있습니다.Gridview를 일반 문자열 목록에 바인딩하려면 어떻게합니까?

첫 번째 입력란에 텍스트 상자가 있습니다. 또한 바닥 글의 텍스트 상자에 값을 입력 할 수 있습니다. 입력되면 일반 목록 (문자열)에 추가되고 gridview에 다시 바인딩됩니다. 그러나 목록에 바인딩하려고하면 실패합니다. 아래의 마크 업에서

, DataItem.Alias ​​<는 - 별칭은 ... 실제로

공공 하위 BindGridView()

Dim oThis As This 'this is a class I have that has a property which is a generic list of string 

    gvAlias.DataSource = oThis.Alias.ToArray 
    gvAlias.DataBind() 
일반 목록

<asp:GridView ID="gvAlias" 
    runat="server"  
    ShowFooter="True" AutoGenerateColumns="false" 
    ShowHeaderWhenEmpty="True" ShowHeader="False" > 
    <Columns> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <%# DataBinder.Eval(Container, "DataItem.Alias")%> /> 
       </ItemTemplate> 
       <FooterTemplate> 
        <asp:TextBox ID="txtFooterAlias" runat="server" /> 
        <asp:LinkButton ID="btnFooterAdd" runat="server" OnClick="AddFromFooter">Add New</asp:LinkButton> 
       </FooterTemplate> 
      </asp:TemplateField> 
      <asp:CommandField ShowDeleteButton="True" /> 
     </Columns> 
     <EmptyDataTemplate> 
      <asp:TextBox ID="txtEmptyAlias" runat="server" /> 
      <asp:LinkButton ID="btnEmptyAdd" runat="server" OnClick="AddFromEmpty">Add New</asp:LinkButton> 
     </EmptyDataTemplate> 
</asp:GridView> 

뒤에 코드의 이름입니다

최종 하위

+0

당신이에 정교한 "뭔가 잘못 가고 계속"이 "별칭"필드를 바인딩 할 수 있습니다? – Marcie

답변

0

설명에서 Alia s는 명확하지 않습니다. 익명 유형입니까?

그러나 문자열 목록으로 표를 바인딩하는 매우 쉬운 방법은 언제든지 변환하는 것입니다.

var aliasList = new List<string>() { 
       "Value1", 
       "Value2", 
       "Value3" 
      }; 
//This will create new anonymous type with Name field. 
var tryName = (from nm in nameList 
       select new { Alias = nm }).ToArray(); 
gvAlias.DataSource = tryName; 
gvAlias.DataBind(); 

지금 당신은 당신의 마크 업

<asp:TemplateField> 
       <ItemTemplate> 
        <%# DataBinder.Eval(Container, "Alias")%> /> 
       </ItemTemplate> 
       <FooterTemplate> 
        <asp:TextBox ID="txtFooterAlias" runat="server" /> 
        <asp:LinkButton ID="btnFooterAdd" runat="server" OnClick="AddFromFooter">Add New</asp:LinkButton> 
       </FooterTemplate> 
      </asp:TemplateField> 
      <asp:CommandField ShowDeleteButton="True" /> 
관련 문제