当GridView中没有数据时如何禁用编辑和删除按钮 [英] how to disable edit and delete button when no data in gridview
本文介绍了当GridView中没有数据时如何禁用编辑和删除按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用带有插入,更新和删除模板字段的网格视图.
当我打开页面时,显示添加,编辑和删除按钮.
我想要在网格视图中没有数据,我只想显示ADD按钮,如果在网格视图中有数据,那么我想添加,编辑和删除按钮.
Hi,
i am using grid view with insert,update and delete template fields.
when i am opening the page the add,edit and delete button is show.
i want if no data data in gird view i want to show only ADD button and if there is data in grid view so i want ADD,EDIT and DELETE button.
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" DataKeyNames = "no"
AutoGenerateColumns="False" CellPadding="3"
Width="100%" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowCommand="GridView1_RowCommand" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowDataBound="GridView1_RowDataBound" OnPageIndexChanging="GridView1_PageIndexChanging" BackColor="White" BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" CellSpacing="1">
<Columns>
<asp:TemplateField HeaderText = "Serial No.">
<ItemTemplate>
<%# ((GridViewRow)Container).RowIndex + 1%>
</ItemTemplate>
<FooterStyle Width="6%" />
<ItemStyle Width="6%" />
</asp:TemplateField>
<asp:BoundField DataField="no" HeaderText = "NO" Visible="False" />
<asp:TemplateField HeaderText ="MileStone">
<EditItemTemplate>
<asp:TextBox ID="txtmilestone" runat="server" Text='<%#Bind("milestone") %>' Height="10%"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVmilestone" runat="server" ErrorMessage="*" ValidationGroup="Gridview" ControlToValidate="txtmilestone"></asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblmilestone" runat="server" Text='<%#Eval("milestone") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtfootermilestone" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVmilestone" runat="server" ErrorMessage="*" ValidationGroup="Gridview" ControlToValidate="txtfootermilestone"></asp:RequiredFieldValidator>
</FooterTemplate>
<ControlStyle Width="70%" />
<FooterStyle Width="18%" />
<HeaderStyle Width="18%" />
<ItemStyle Width="18%" />
</asp:TemplateField>
<asp:TemplateField HeaderText = "Completion Date">
<EditItemTemplate>
<asp:TextBox ID="txtcompletiondate" runat="server" class="date-pick" Text='<%#Bind("completiondate") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVcompletiondate" runat="server" ErrorMessage="*" ValidationGroup="Gridview" ControlToValidate="txtcompletiondate"></asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblcompletiondate" runat="server" Text='<%#Eval("completiondate","{0:dd-MM-yyyy}") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtfootercompletiondate" runat="server" class="date-pick"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVcompletiondate" runat="server" ErrorMessage="*" ValidationGroup="Gridview" ControlToValidate="txtfootercompletiondate"></asp:RequiredFieldValidator>
</FooterTemplate>
<ControlStyle Width="80%" />
<FooterStyle Width="23%" />
<HeaderStyle Width="23%" />
<ItemStyle Width="23%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Payment(%)">
<EditItemTemplate>
<asp:TextBox ID="txtpaymentpercent" runat="server" Text='<%#Bind("paymentpercent") %>' Height="10%"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVpaymentpercent" runat="server" ErrorMessage="*" ValidationGroup="Gridview" ControlToValidate="txtpaymentpercent"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="RVtxtpaymentpercent" runat="server" ErrorMessage="Invalid Payment(%)" ValidationGroup="Gridview" ControlToValidate="txtpaymentpercent" Type="Double" MinimumValue="0" MaximumValue="100"></asp:RangeValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblpaymentpercent" runat="server" Text='<%#Eval("paymentpercent") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtfooterpaymentpercent" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVpaymentpercent" runat="server" ErrorMessage="*" ValidationGroup="Gridview" ControlToValidate="txtfooterpaymentpercent"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="RVpaymentpercent" runat="server" ErrorMessage="Invalid Payment(%)" ValidationGroup="Gridview" ControlToValidate="txtfooterpaymentpercent" Type="Double" MinimumValue="0" MaximumValue="100"></asp:RangeValidator>
</FooterTemplate>
<ControlStyle Width="70%" />
<FooterStyle Width="18%" />
<HeaderStyle Width="18%" />
<ItemStyle Width="18%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Payment(Rs)">
<EditItemTemplate>
<asp:TextBox ID="txtpaymentrupee" runat="server" Text='<%#Bind("paymentrupee") %>' Height="10%"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVpaymentrupee" runat="server" ErrorMessage="*" ValidationGroup="Gridview" ControlToValidate="txtpaymentrupee"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="RVtxtpaymentrupee" runat="server" ErrorMessage="Invalid Payment(Rs)" ValidationGroup="Gridview" ControlToValidate="txtpaymentrupee" Type="Integer" MinimumValue="0" MaximumValue="100000000"></asp:RangeValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblpaymentrupee" runat="server" Text='<%#Eval("paymentrupee") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtfooterpaymentrupee" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVpaymentrupee" runat="server" ErrorMessage="*" ValidationGroup="Gridview" ControlToValidate="txtfooterpaymentrupee"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="RVpaymentrupee" runat="server" ErrorMessage="Invalid Payment(Rs)" ValidationGroup="Gridview" ControlToValidate="txtfooterpaymentrupee" Type="Integer" MinimumValue="0" MaximumValue="100000000"></asp:RangeValidator>
</FooterTemplate>
<ControlStyle Width="70%" />
<FooterStyle Width="18%" />
<HeaderStyle Width="18%" />
<ItemStyle Width="18%" />
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="lnkadd" runat="server" CausesValidation="false" CommandName="Add" Text="Add"></asp:LinkButton>
</ItemTemplate>
<FooterTemplate>
<asp:LinkButton ID="lnkfootersave" runat="server" CausesValidation="true" ValidationGroup="Gridview" Text="Save" CommandName="Save"></asp:LinkButton>
<asp:LinkButton ID="lnksavecancel" runat="server" CausesValidation="false" CommandName="Cancel" Text="Cancel"></asp:LinkButton>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<EditItemTemplate>
<asp:LinkButton ID="lnkupdate" runat="server" CausesValidation="true" ValidationGroup="Gridview" CommandName="Update" Text="Update"></asp:LinkButton>
<asp:LinkButton ID="lnkcancel" runat="server" CausesValidation="false" CommandName="Cancel" Text="Cancel"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="lnkedit" runat="server" Visible="true" CausesValidation="false" CommandName="Edit" Text="Edit"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="lnkdelete" runat="server" CausesValidation="false" CommandName="Delete" Text="Delete" OnClientClick="return confirm('Are you sure you want to delete this Record?');"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#DEDFDE" HorizontalAlign="Center" VerticalAlign="Middle" ForeColor="Black" Width="100%" />
<FooterStyle BackColor="#C6C3C6" HorizontalAlign="Center" VerticalAlign="Middle" ForeColor="Black" Width="100%" Wrap="True" />
<PagerStyle ForeColor="Black" HorizontalAlign="Right" BackColor="#C6C3C6" />
<SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" Width="100%" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" HorizontalAlign="Center" VerticalAlign="Middle" />
<EmptyDataRowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<EditRowStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100%" />
</asp:GridView>
在此先感谢.
Thanks in Advance.
推荐答案
在页面加载事件中,您可以编写代码以禁用按钮,甚至可以在页面加载事件中生成动态的编辑/删除"按钮.
检查行数是否为零,则不要创建编辑和删除"按钮.
希望对您有帮助,
谢谢
-amit.
Hi,
in page Load event you can write code to disable your buttons or even you can generate dynamic Edit/Delete button in page load event.
check if number of rows are zero then do not create Edit and Delete button.
hope this will help you,
Thanks
-amit.
在页面加载方法中,您的代码必须如下所示:
in page load method your code need to be like below:
if (GridView1.Rows.Count >= 1)
{
foreach(GridViewRow gr in GridView1.Rows)
{
LinkButton lnkedit = (LinkButton)gr.FindControl("lnkedit");
lnkedit.Visible = true;
}
}
为此,您需要首先绑定网格,然后需要检查网格中的行数,因此您的代码将是
Well for this you need to first bind gird and than need to check number of row in grid so you code will be
private void BindGrid()
{
gridview.DataSource = datasource;
gridview.DataBind();
if(gridview.Rows.Count <=0)
{
btnAd.Visible= true;
btnDel.Visible= false;
btnUP.Visible= false;
}
}
这篇关于当GridView中没有数据时如何禁用编辑和删除按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文