Behrouz_Rad
شنبه 22 مهر 1385, 16:42 عصر
نکته ای که در رابطه با GridView وجود داره این هست که اگر DataSource منتسب شده به GridView هیچ رکوردی را شامل نشود، GridView نمایش داده نمی شود!
به نظر منطقی میرسه. به عنوان مثال، اگر GridView شما قابلیت های حذف و ویرایش درجا را داشته باشد، این قابلیت ها بدون وجود رکورد معنا نخواهند داشت!
برای رفع این مشکل، GridView مفهوم جدیدی با نام "EmptyDataTemplate" ارائه کرده است که در صورت خالی بودن DataSource از رکورد، قالبی که در این تگ تعریف می شود به جای قالب اصلی GridView نمایش داده خواهد شد.
مسلما تنها قابلیتی که در صورت نبود رکورد معنا پیدا می کند، "اضافه کردن رکورد" است.
بهترین روش، ایجاد یک تگ Table، تعریف Header برای Table و یک ردیف برای قرار دادن Button، TextBox و ... است.
به خاصیت CommandName کنترل Button نامی دلخواه را نسبت دهید. این نام را در روال RowCommand کنترل GridView بازیابی می کنیم.
تگ EmptyDataTemplate را پس از تگ Columns بنویسید.
<EmptyDataTemplate>
<table>
<tr>
<td>Name</td>
<td>Family</td>
</tr>
<tr>
<td><asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
<td><asp:TextBox ID="txtFamily" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td colspan="2"><asp:Button ID="btnEmptyAdd" runat="server" CommandName="EmptyInsert" /></td>
</tr>
<table>
</EmptyDataTemplate>
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles GridView1.RowCommand
If e.CommandName = "EmptyInsert" Then
Dim obj_txtName As TextBox
obj_txtName = GridView1.Controls(0).Controls(0).FindControl("txtName")
Response.Write(obj_txtName.Text)
End If
End Sub
موفق باشید.
به نظر منطقی میرسه. به عنوان مثال، اگر GridView شما قابلیت های حذف و ویرایش درجا را داشته باشد، این قابلیت ها بدون وجود رکورد معنا نخواهند داشت!
برای رفع این مشکل، GridView مفهوم جدیدی با نام "EmptyDataTemplate" ارائه کرده است که در صورت خالی بودن DataSource از رکورد، قالبی که در این تگ تعریف می شود به جای قالب اصلی GridView نمایش داده خواهد شد.
مسلما تنها قابلیتی که در صورت نبود رکورد معنا پیدا می کند، "اضافه کردن رکورد" است.
بهترین روش، ایجاد یک تگ Table، تعریف Header برای Table و یک ردیف برای قرار دادن Button، TextBox و ... است.
به خاصیت CommandName کنترل Button نامی دلخواه را نسبت دهید. این نام را در روال RowCommand کنترل GridView بازیابی می کنیم.
تگ EmptyDataTemplate را پس از تگ Columns بنویسید.
<EmptyDataTemplate>
<table>
<tr>
<td>Name</td>
<td>Family</td>
</tr>
<tr>
<td><asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
<td><asp:TextBox ID="txtFamily" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td colspan="2"><asp:Button ID="btnEmptyAdd" runat="server" CommandName="EmptyInsert" /></td>
</tr>
<table>
</EmptyDataTemplate>
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles GridView1.RowCommand
If e.CommandName = "EmptyInsert" Then
Dim obj_txtName As TextBox
obj_txtName = GridView1.Controls(0).Controls(0).FindControl("txtName")
Response.Write(obj_txtName.Text)
End If
End Sub
موفق باشید.