【问题标题】:Asp Gridview View changes between edit mode and preview modeAsp Gridview View 在编辑模式和预览模式之间变化
【发布时间】:2013-01-20 14:38:21
【问题描述】:

我有一个通过数据库填充的 asp gridview 控件(允许分页)。我还允许用户连续编辑任何单元格。 gridview 控件被包裹在这个 div 标签中 这使得它更小,占用更少的屏幕。它完美地工作,直到我单击编辑按钮,这导致选定的行变成编辑模式。当它这样做时,将编辑行突出显示为一种颜色,并使该行文本框上的控件。我为 gridview 中的每一列使用模板。关注;

模板字段 项目模板 编辑模板 页脚模板

对于每一列。当 gridview 切换到编辑模式时,它基本上以默认大小呈现网格,该大小占据了所有屏幕,看起来很糟糕......似乎忽略了 div 标签。关于为什么在编辑模式和非编辑模式之间切换渲染大小的任何想法?当我取消编辑操作时,它会在网格的初始加载时呈现回正确的大小:(

【问题讨论】:

  • 你能发布你的gridview代码吗?
  • 我直接从页面中复制了它,这是一个相当大的网格视图,所以我需要分页,我还需要减小它的大小,这样它就不会占用整个页面。我从来没有在编辑和非编辑模式之间有过不同的渲染大小,所以我对此一无所知。

标签: asp.net gridview vb.net-2010


【解决方案1】:
<div align="center" style="font-size: smaller;">
        <table>
            <tr>
                <td>
                    <asp:GridView ID="gvCustomer" runat="server" AutoGenerateColumns="false" AllowPaging="True"
                        ShowFooter="True" BorderColor="Blue" BorderStyle="Double">
                        <Columns>
                            <asp:TemplateField HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"
                                ItemStyle-HorizontalAlign="Center" HeaderText="StandardAcctNo" ShowHeader="true">
                                <HeaderTemplate>
                                    Standard<br />
                                    Account
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="lblStandardAcctNo" runat="server" Text='<%# Bind("StandardAcctNo")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtStandardAcctNo" runat="server" Text='<%# Eval("StandardAcctNo") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:DropDownList ID="FtrddlStandardAcctNo" runat="server">
                                    </asp:DropDownList>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"
                                ItemStyle-HorizontalAlign="Center" HeaderText="CompanyID" ShowHeader="true">
                                <HeaderTemplate>
                                    Company<br />
                                    ID
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="lblCompanyID" runat="server" Text='<%# Bind("CompanyID")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtCompanyID" runat="server" Text='<%# Eval("CompanyID") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox Width="50px" ID="ftrCompanyID" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"
                                ItemStyle-HorizontalAlign="Center" HeaderText="OrgGroupID" ShowHeader="true">
                                <HeaderTemplate>
                                    OrgGroup<br />
                                    ID
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="lblOrgGroupID" runat="server" Text='<%# Bind("OrgGroupID")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtOrgGroupID" runat="server" Text='<%# Eval("OrgGroupID") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox Width="75px" ID="ftrOrgGroupID" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"
                                ItemStyle-HorizontalAlign="Center" HeaderText="BuyerID" ShowHeader="true">
                                <ItemTemplate>
                                    <asp:Label ID="lblBuyerID" runat="server" Text='<%# Bind("BuyerID")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtBuyerID" runat="server" Text='<%# Eval("BuyerID") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox Width="75px" ID="ftrBuyerID" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"
                                ItemStyle-HorizontalAlign="Center" HeaderText="SupplierID" ShowHeader="true">
                                <HeaderTemplate>
                                    Supplier<br />
                                    ID
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="lblSupplierID" runat="server" Text='<%# Bind("SupplierID")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtSupplierID" runat="server" Text='<%# Eval("SupplierID") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox Width="75px" ID="ftrSupplierID" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"
                                ItemStyle-HorizontalAlign="Center" HeaderText="CarrierID" ShowHeader="true">
                                <HeaderTemplate>
                                    Carrier<br />
                                    ID
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="lblCarrierID" runat="server" Text='<%# Bind("CarrierID")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtCarrierID" runat="server" Text='<%# Eval("CarrierID") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox Width="75px" ID="ftrCarrierID" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"
                                ItemStyle-HorizontalAlign="Center" HeaderText="TerminalID" ShowHeader="true">
                                <HeaderTemplate>
                                    Terminal<br />
                                    ID
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="lblTerminalID" runat="server" Text='<%# Bind("TruckTermID")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtTerminalID" runat="server" Text='<%# Eval("TruckTermID") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox Width="75px" ID="ftrTerminalID" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"
                                ItemStyle-HorizontalAlign="Center" HeaderText="CustomerName" ShowHeader="true">
                                <HeaderTemplate>
                                    Customer<br />
                                    Name
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="lblCustomerName" runat="server" Text='<%# Bind("CustomerName")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtCustomerName" runat="server" Text='<%# Eval("CustomerName") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox Width="100px" ID="ftrCustomerName" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"
                                ItemStyle-HorizontalAlign="Center" HeaderText="Tolerance %" ShowHeader="true">
                                <ItemTemplate>
                                    <asp:Label ID="lblTolerancePercentage" runat="server" Text='<%# Bind("Tolerance")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtTolerancePercentage" runat="server" Text='<%# Eval("Tolerance") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox Width="50px" ID="ftrTolerancePercentage" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"
                                ItemStyle-HorizontalAlign="Center" HeaderText="Credit/Rebill BOL" ShowHeader="true">
                                <ItemTemplate>
                                    <asp:Label ID="lblCreditRebillBOL" runat="server" Text='<%# Bind("CreditRebillBOL")%>'></asp:Label>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:TextBox ID="txtCreditRebillBOL" runat="server" Text='<%# Eval("CreditRebillBOL") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:TextBox Width="20px" ID="ftrCreditRebillBOL" runat="server"></asp:TextBox>
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField ShowHeader="False">
                                <ItemTemplate>
                                    <asp:LinkButton ID="lnkbtnXRefEdit" runat="server" CausesValidation="false" CommandName="Edit"
                                        Text="Edit"></asp:LinkButton>
                                    <asp:LinkButton ID="lnkbtnXRefDelete" runat="server" CommandName="Delete" Text="Delete"
                                        OnClientClick="return confirm('Are you sure you want to DELETE this entry?');"></asp:LinkButton>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <asp:LinkButton ID="lnkbtnXRefUpdate" runat="server" CausesValidation="true" CommandName="Update"
                                        ValidationGroup="Update" OnClientClick="return confirm('Are you sure you want to UPDATE this entry?');"
                                        Text="Update"></asp:LinkButton>
                                    <asp:LinkButton ID="lnkbtnXRefCancel" runat="server" CausesValidation="False" CommandName="Cancel"
                                        Text="Cancel"></asp:LinkButton>
                                </EditItemTemplate>
                                <FooterTemplate>
                                    <asp:LinkButton ID="lnkbtnXRefAddNew" runat="server" CommandName="AddNew" Text="Add New"
                                        CausesValidation="true" ValidationGroup="AddNew"></asp:LinkButton>
                                </FooterTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                </td>
            </tr>
        </table>
    </div>

【讨论】:

    【解决方案2】:

    这可能是编辑模式文本框使您的网格失控。您的 DIV 字体大小仅适用于文本跨度元素,而不适用于文本框。

    尝试设置文本框的样式以减小其大小。每个链接here

    <asp:GridView ID="gvCustomer" runat="server">
        ...
        <EditRowStyle CssClass="GridViewEditRow" /> <%-- add this --%>
    </asp:GridView>
    

    然后为您的文本框添加样式:

    .GridViewEditRow input[type=text] {width:50px;} 
    

    或者,根据可能填充这些框的文本大小,添加 font-size 属性:

    .GridViewEditRow input[type=text] {width:70px; font-size: .9em} 
    

    【讨论】:

    • 太棒了,我会在今天之前给出这个,看看它是否有帮助。一旦我完成测试,我会将其标记为答案。谢谢:)
    • 这成功了!我创建了一个外部 CSS 类并链接到我的页面。我不得不添加一些更多的设置,例如宽度,以达到我想要的方式,但这看起来好多了:D
    【解决方案3】:

    用途:

    < Control style width="" /> between < asp:Boundfield>----< /asp:Boundfield> 
    

    它会立即解决。

    【讨论】:

      猜你喜欢
      • 2018-03-02
      • 1970-01-01
      • 2012-01-16
      • 2018-04-29
      • 2011-04-14
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多