Bu sefer ki yazımda , Asp.net Web form Gridview de nasıl filtreleme yapılır basit bir kod parcacığı ile göstermeye çalışacağım. Filtrelemeden kasıt olarak , bazen uygulamamızda tüm verileri listeledikten sonra , belirli bir isme sahip insanları görmek veya belirli bir değere sahip verileri filtreleyip listelemek isteriz.
Ben uygulamam da , tüm öğrencileri listeledikten sonra ,fakülte ve isme göre filtreleme işlemi yaptım. Bunu yapar iken de code behind alanına hiç bir kod yazmadım. Aspx sayfasında bu işlemi Sql data source ve filter expression kullanarak hallettim.
ASPX Sayfası :
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Filter Deneme</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Northwind Employees</h3>
<table cellspacing="10">
<tr>
<td valign="top">
<table border="0">
<tr>
<td valign="top">Faculty</td>
<td>
<asp:DropDownList runat="server" id="FacultyFilterBox" AppendDataBoundItems="True"
DataSourceID="FacultySqlDataSource"
DataTextField="FacultyName" AutoPostBack="true" DataValueField="FacultyName" >
<asp:ListItem Selected="True" Value="" >(Hepsi)</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td>Name</td>
<td><asp:TextBox runat="server" id="NameTextBox" Text="*" /></td>
</tr>
<tr>
<td></td>
<td><asp:Button runat="server" id="FilterButton" Text="Filtrele" /></td>
</tr>
</table>
</td>
<td valign="top">
<asp:GridView ID="EmployeesGridView"
DataSourceID="StudentSqlDataSource"
AutoGenerateColumns="false"
AllowSorting="true"
Gridlines="Both"
RunAt="server">
<HeaderStyle backcolor="Navy"
forecolor="White"/>
<RowStyle backcolor="White"/>
<AlternatingRowStyle backcolor="LightGray"/>
<EditRowStyle backcolor="LightCyan"/>
<Columns>
<asp:BoundField DataField="StudentName" HeaderText="StudentName"/>
<asp:BoundField DataField="StudentFaculty" HeaderText="StudentFaculty"/>
<asp:BoundField DataField="StudentDepartmant" HeaderText="StudentDepartmant"/>
<asp:BoundField DataField="StudentAdress" HeaderText="StudentAdress"/>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
<!-- AkinsoftConnect : Web config içerisinde içerisinde tanımlanan
connection stringe verilen –add name- alanın değeridir.-->
<asp:SqlDataSource ID="FacultySqlDataSource"
SelectCommand="select FacultyName from Faculty"
EnableCaching="True"
CacheDuration="60"
ConnectionString="<%$ ConnectionStrings:AkinSoftConnect %>"
RunAt="server"/>
<asp:SqlDataSource ID="StudentSqlDataSource"
SelectCommand="select StudentName, StudentFaculty,
StudentDepartmant, StudentAdress from Student"
EnableCaching="True"
CacheDuration="60"
ConnectionString="<%$ ConnectionStrings:AkinSoftConnect %>"
FilterExpression="StudentFaculty LIKE '{0}' AND StudentName LIKE
'{1}'"
RunAt="server">
<!-- filter expression içerisinde yer alan {0} ve {1} parametre sırasısını
belirtmektedir.-->
<FilterParameters>
<asp:ControlParameter ControlID="FacultyFilterBox" PropertyName="SelectedValue" />
<asp:ControlParameter ControlID="NameTextBox" PropertyName="Text" />
</FilterParameters>
</asp:SqlDataSource>
</form>
</body>
</html>
Umarım İşinize yarar. Herhangi bir sorun da iletişime geçebilirsiniz.İyi çalışmalar
Hiç yorum yok:
Yorum Gönder