C# 如何在asp.net gridview中显示固定数量的行
所以在这里,我在asp.net中有几行GridView。现在的问题是,有些gridview有5个数据,有些有10个数据,这是不一致的。它看起来很难看,因为我需要打印。这是至关重要的 我想最多显示15行。它是从数据库中绑定的数据,用户可以填写表格中的主题(最多15行)。如果任何一行没有任何数据。它会将其保留为空(请注意,数据库最多不会填充15行。只填充用户输入的内容)。我做了一些研究,但只发现了一些可能相关的,但使用javascipt/changingcurrentsql。我不允许在该站点中使用任何javascript(稍后的支持将是一个问题)。既然我是实习生。sql代码是给我的。我只需要实现它。如何在gridview中显示固定数量的行?在gridview中是否有任何属性可以用来将空白填充到15行 aspx文件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: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);
}