PDA

View Full Version : Bind کردن GridView با یک لیست generic



mohsen_zelzela00
پنج شنبه 20 اسفند 1388, 17:11 عصر
با سلام
من یک Grid طراحی کردم با کد زیر


<asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenerateColumns="false"
ShowFooter="true" BorderColor="White" BorderStyle="Ridge" CellSpacing="1"
BorderWidth="2px" BackColor="White" CellPadding="3" GridLines="None" Font-Names="Tahoma" Font-Size="11px"
AlternatingRowStyle-BackColor="AliceBlue">
<FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
<RowStyle BackColor="#DEDFDE" ForeColor="Black" />
<SelectedRowStyle BackColor="#9471DE" Font-Bold="true" ForeColor="White" />
<PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="true" ForeColor="#E7E7FF" />
<SelectedRowStyle BackColor="#DEDFDE" Font-Italic="false" ForeColor="Black" Font-Bold="false" Font-Size="11px" />


<Columns>


<asp:TemplateField HeaderText="حذف" ItemStyle-BackColor="#ffc080" ItemStyle-HorizontalAlign="Center" >
<ItemTemplate >
<asp:ImageButton ID="Image3" runat="server" ImageUrl="~/design/icon-delete.gif" CommandName="del" CausesValidation="false"
CommandArgument='<%#Eval("CLEARANCE_ID") %>'
OnClientClick="return confirm('آیا دستور حذف را تایید می کنید؟');" />


</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="توضیحات" HeaderStyle-HorizontalAlign="Center"
FooterStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Literal ID="litRemark" runat="server" Text='<%#Eval("REMARK")%>'></asp:Literal>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField HeaderText="ترتیب در لیست"
HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"
FooterStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Literal ID="litListOrder" runat="server" Text='<%#Eval("LIST_ORDER")%>'></asp:Literal>

</ItemTemplate>


</asp:TemplateField>


<asp:TemplateField HeaderText="ضروری است؟"
HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"
FooterStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Literal ID="litUrgent" runat="server" Text='<%#Eval("URGENT")%>'></asp:Literal>

</ItemTemplate>


</asp:TemplateField>

<asp:TemplateField HeaderText="نوع ترخیص">
<ItemTemplate>
<asp:Literal ID="litDocumentId" runat="server" Text='<%#Eval("DOCUMENT_ID")%>'></asp:Literal>

</ItemTemplate>

</asp:TemplateField>


<asp:TemplateField HeaderText="نوع ترخیص">
<ItemTemplate>
<asp:Literal ID="litClearanceId" runat="server" Text='<%#Eval("CLEARANCE_ID")%>'></asp:Literal>

</ItemTemplate>

</asp:TemplateField>








<asp:TemplateField HeaderText="ویرایش" ItemStyle-HorizontalAlign="Center" >

<ItemTemplate>
<asp:ImageButton ID="Image4" runat="server" ImageUrl="~/design/icon-pencil.gif" CommandName="edit" CausesValidation="true" ImageAlign="AbsMiddle"
CommandArgument='<%#Bind("CLEARANCE_ID") %>' />

</ItemTemplate>

</asp:TemplateField>



</Columns>



</asp:GridView>




و یک لیست generic به صورت زیر تعریف کردم



Public Function GETALL_ClearanceType() As List(Of clsFeildClearanceDocuments)

Dim RetList As New List(Of clsFeildClearanceDocuments)()

Dim cn As New SqlConnection(ConfigurationManager.ConnectionStrin gs("Connection").ConnectionString)
Dim cmd As New SqlCommand("SELECT_ALL_CLEARANCE_DOCUMENT", cn)
Dim Dr As SqlDataReader = Nothing
Try
cn.Open()
Dr = cmd.ExecuteReader()
Do While Dr.Read()
Dim Feild As New clsFeildClearanceDocuments()
Feild.CLEARANCE_ID = Integer.Parse(Dr.Item(0).ToString)
Feild.DOCUMENT_ID = Integer.Parse(Dr.Item(1).ToString)
Feild.URGENT = Boolean.Parse(Dr.Item(2).ToString)
Feild.LIST_ORDER = Integer.Parse(Dr.Item(3).ToString)
Feild.REMARK = Dr.Item(4).ToString

RetList.Add(Feild)
Loop





Catch e1 As Exception

Throw



Finally
If cn.State <> ConnectionState.Closed Then cn.Close()
If (Not cmd Is Nothing) Then cmd.Dispose()



End Try

Return RetList

End Function



حالا می خوام که این لیست را به Grid خودم Bind کنم(اگر در Grid ازTemplate استفاده نکنم این کار رو به راحتی انجام میدم ولی وقتی از Template استفاده می کنم باعث بروز خطا میشود)

Milad Mohseny
جمعه 21 اسفند 1388, 23:22 عصر
ببين اينا ميتونه خوشحالت كنه؟ :بامزه:
http://forums.asp.net/t/1311737.aspx
http://www.velocityreviews.com/forums/t111794-bind-gridview-to-generic-custom-object-list-collection.html
http://bytes.com/topic/asp-net/answers/676567-simple-generic-list-datasource-grid

Vahid_moghaddam
شنبه 22 اسفند 1388, 10:32 صبح
چه خطایی تولید می شه؟

mohsen_zelzela00
شنبه 22 اسفند 1388, 23:40 عصر
چه خطایی تولید می شه؟

دوست عزیز هیچکدام از فیلد هام رو نمی شناسه




<asp:Literal ID="litUrgent" runat="server" Text='<%#Eval("URGENT")%>'></asp:Literal>