استفاده از EmptyDataTemplate درآموزش GridView با مثال در ASP.NET
در این مقاله، با یك مثال ، نحوه استفاده از ویژگی EmptyDataTemplate در ASP.Net GridView با C # توضیح خواهیم داد.
خصوصیات EmptyDataTemplate در ASP.Net GridView برای نشان دادن خالی بودن داده در GridView استفاده میشود.
بانك اطلاعاتی
من از جدول Costumers به صورت زیر استفاده كرده ام.

چند مشتری را به جدول مانند زیر اضافه كنید.

توجه! شما می توانید جدول پایگاه داده SQL را با كلیك روی لینك دانلود زیر دانلود كنید.!
دانلود فایل SQL
كد HTML
كد HTML شامل ASP.Net GridView و یك RadioButtonList ASP.Net است.
RadioButtonList : رویداد OnSelectedIndexChanged در RadioButtonList اضافه شده است و ویژگی AutoPostBack به True تنظیم شده است.
GridView : ویژگی ShowHeaderWhenEmpty از كنترل GridView به True تنظیم شده است، به طوری كه حتی زمانی كه هیچ داده ای وجود ندارد، GridView ردیف Header را نمایش می دهد.
EmptyDataTemplate : خصوصیت EmptyDataTemplate با یك پیام "هیچ ركوردی پیدا نشد" مشخص شده است كه وقتی GridView خالی باشد نمایش داده خواهد شد.
<asp:RadioButtonList ID="rblCountries" runat="server" AutoPostBack="true" OnSelectedIndexChanged="Country_Selected"
RepeatDirection="Horizontal">
<asp:ListItem Text="نمایش همه" Value="" Selected="True"></asp:ListItem>
<asp:ListItem Text="ایران" Value="iran"></asp:ListItem>
<asp:ListItem Text="آمریكا" Value="United States"></asp:ListItem>
<asp:ListItem Text="فرانسه" Value="France"></asp:ListItem>
<asp:ListItem Text="روسیه" Value="Russia"></asp:ListItem>
<asp:ListItem Text="چین" Value="Canada"></asp:ListItem>
</asp:RadioButtonList>
<hr />
<asp:GridView ID="GridView1" runat="server" CssClass="Grid" AutoGenerateColumns="false"
ShowHeaderWhenEmpty="true">
<Columns>
<asp:BoundField DataField="CustomerId" HeaderText="شماره مشتری" />
<asp:BoundField DataField="Name" HeaderText="نام ونام خانوادگی" />
<asp:BoundField DataField="Country" HeaderText="كشور" />
</Columns>
<EmptyDataTemplate>
<div align="center">هیچ ركوردی یافت نشد.</div>
</EmptyDataTemplate>
</asp:GridView>
فضاهای نام
شما باید فضای نامهای زیر را وارد كنید.
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
جمع آوری كنترل GridView
در داخل رویداد بارگذاری صفحه، عملكرد BindGrid برا نمایش اطلاعات در GridView قرار داده شده.
در داخل تابع BindGrid ابتدا مقادیر انتخاب شده RadioButtonList جمع آوری شده و با استفاده از پارامترها به SQL Query منتقل می شود.
پرس و جو SQL به نحوی نوشته شده است كه اگر مقدار انتخاب شده RadioButtonList خالی باشد ، تمام ركوردها نمایش داده می شود و دیگر سوابق فیلتر شده نمایش داده نمی شود.
هنگامی كه Query SQL اجرا می شود، GridView با استفاده از ركوردها از جدول Customers پر میشود.
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.BindGrid();
}
}
private void BindGrid()
{
string country = rblCountries.SelectedItem.Value;
string sql = "SELECT * FROM Customers WHERE Country=@Country OR @Country = ''";
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(sql))
{
cmd.Parameters.AddWithValue("@Country", country);
cmd.Connection = con;
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
}
}
رویداد RadioButtonList SelectedIndexChanged
رویداد زیر هنگامی كه یك مورد در RadioButtonList انتخاب اتفاق می افتد و باعث می شود كه رویدار تابع BindGrid فراخوانی شود.
protected void Country_Selected(object sender, EventArgs e)
{
this.BindGrid();
}