当GridView中没有数据时如何禁用编辑和删除按钮 [英] how to disable edit and delete button when no data in gridview

查看:63
本文介绍了当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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆