C# 如何在asp.net gridview中显示固定数量的行

C# 如何在asp.net gridview中显示固定数量的行,c#,mysql,asp.net,gridview,C#,Mysql,Asp.net,Gridview,所以在这里,我在asp.net中有几行GridView。现在的问题是,有些gridview有5个数据,有些有10个数据,这是不一致的。它看起来很难看,因为我需要打印。这是至关重要的 我想最多显示15行。它是从数据库中绑定的数据,用户可以填写表格中的主题(最多15行)。如果任何一行没有任何数据。它会将其保留为空(请注意,数据库最多不会填充15行。只填充用户输入的内容)。我做了一些研究,但只发现了一些可能相关的,但使用javascipt/changingcurrentsql。我不允许在该站点中使用任

所以在这里,我在asp.net中有几行GridView。现在的问题是,有些gridview有5个数据,有些有10个数据,这是不一致的。它看起来很难看,因为我需要打印。这是至关重要的

我想最多显示15行。它是从数据库中绑定的数据,用户可以填写表格中的主题(最多15行)。如果任何一行没有任何数据。它会将其保留为空(请注意,数据库最多不会填充15行。只填充用户输入的内容)。我做了一些研究,但只发现了一些可能相关的,但使用javascipt/changingcurrentsql。我不允许在该站点中使用任何javascript(稍后的支持将是一个问题)。既然我是实习生。sql代码是给我的。我只需要实现它。如何在gridview中显示固定数量的行?在gridview中是否有任何属性可以用来将空白填充到15行

aspx文件

<asp:GridView ID="GridViewResult" runat="server" AutoGenerateColumns="False" EmptyDataText="NO RECORD" Font-Size="Small"
                        GridLines="Both" CellPadding="1" Height="101px" Width="100%" ShowFooter="True">
                        <Columns>
                            <asp:TemplateField HeaderText="Subjects">
                                <ItemTemplate>
                                    <asp:Label ID="lbl" runat="server" Text='<%# Eval("Subjects") %>'></asp:Label>
                                </ItemTemplate>
                                <ItemStyle HorizontalAlign="Center"  Width="25px"  />
                            </asp:TemplateField> 
                            <asp:TemplateField HeaderText="Grade">
                                <ItemTemplate>
                                    <asp:Label ID="lbl1" runat="server" Text='<%# Eval("Grade") %>'></asp:Label>
                                </ItemTemplate>
                                <ItemStyle HorizontalAlign="Center"  Width="25px"  />
                            </asp:TemplateField> 
                        </Columns>  
                        <HeaderStyle Font-Bold="True"  HorizontalAlign="Center" Height="40px"/>
                        <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
                        <FooterStyle HorizontalAlign="Center" />                           
                    </asp:GridView>

你的代码有很多问题

1) 您的数据访问层在运行时不应位于同一位置 数据绑定网格

2) 您不应该使用全局SqlConnection。连接池是您的 朋友。此外,如果发生异常,您的连接将永远不会关闭

3) 您的查询应该使用sql参数来防止sql注入

4) 您应该在using语句中包装SqlDataAdapter,以便将其释放 加油后

如果我理解正确,那么出于某种原因,您希望在C#中用虚拟记录填充网格,当记录数小于15时,您可以像这样向fetch数据集添加虚拟行

        int countRows = dsgvKep1 .Tables[0].Rows.Count;
        int dummyRecords = 0;

        if(countRows < 15)
        {
            dummyRecords = 15 - countRows;
        }

        for (int i = 0; i < dummyRecords; i++)
        {
            DataTable tbl = dsgvKep1.Tables[0];
            DataRow row = tbl.NewRow();

            //add dummy values if you want
            //row["ColumnName"] = value;
            tbl.Rows.Add(row);
        }
int countRows=dsgvKep1.Tables[0].Rows.Count;
int dummyRecords=0;
if(countRows<15)
{
dummyRecords=15个计数行;
}
对于(int i=0;i
我建议你修一下我给你的四个指针。据我所知,你是实习生,从长远来看,这对你有好处


在这个问题中,我写了如何创建一个简单的数据访问层:,在这里您可以看到数据层,处理sqlDataAdapter,防止发生异常时不关闭sql连接,还可以使用
SqlComand.Parameters

防止sql注入。您是否在寻找分页?如果是这样的话,您可以设置
allowpage=“True”
。不,我不是在找分页。我需要它在一页中显示所有内容,因为它用于打印。喜欢15行框/数据,如果其中没有数据,则用空白填充空行。尝试筛选数据源,
dsgvKep1.Tables[0]。rows.Cast().Take(15)
这可以简化为
gridviewsresult1.DataSource=dsgvKep1.Tables[0].dt.AsEnumerable().Take(15.CopyToDataTable()尝试了第一个。但是代码是限制它只需要15分钟,对吗?gridview仍然只显示5行。其余的行仍然没有首先显示。谢谢你的建议。当我有多余的时间时,我可能会把它修好。对于当前的问题。它仍然显示5行数据。我做错了什么?我添加了您在数据绑定之后和关闭connectionCheck in debug之前提供的代码,如果数据集有15条记录,请将其放入DataSource。
        int countRows = dsgvKep1 .Tables[0].Rows.Count;
        int dummyRecords = 0;

        if(countRows < 15)
        {
            dummyRecords = 15 - countRows;
        }

        for (int i = 0; i < dummyRecords; i++)
        {
            DataTable tbl = dsgvKep1.Tables[0];
            DataRow row = tbl.NewRow();

            //add dummy values if you want
            //row["ColumnName"] = value;
            tbl.Rows.Add(row);
        }