ASP.NET GridView inside repeater: 滚动页面时在行之间随机出现网格线 disappear/reappear
ASP.NET GridView inside repeater: gridlines disappear/reappear at random between rows when scolling through page
我认为我的标题解释了我遇到的问题。我的问题的屏幕截图以获得更多说明:
Gridlines not showing when I'm scolled to the top of my page
Gridlines showing when I'm scolled to the bottom of my page
相关代码,.aspx文件:
<asp:Repeater ID="rep" runat="server" OnItemDataBound="rep_ItemDataBound">
<ItemTemplate>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
EnableModelValidation="True"
Position=relative OnRowCommand="GridView1_RowCommand"
AllowPaging="false" ShowFooter="false"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
OnRowCreated="GridView1_RowCreated" OnRowDataBound="GridView1_RowDataBound"
Width="90%">
<Columns>
//a few TemplateFields with ItemTemplates inside of them,
and some DataBinder to display the information.
//I'm not doing anything with the border inside the TemplateFields.
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:Repeater>
我在.aspx.cs文件中的相关代码:
protected void rep_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
foreach(Control c in e.Item.Controls)
{
if(c as Label != null)
{
GetIoTName(varv);
(c as Label).Text = "<br>" + GetIoTName(varv) + "</br>";
}
if (c as GridView != null)
{
(c as GridView).DataSource = AllConnectedDevices[varv];
(c as GridView).DataBind();
}
}
}
数据绑定正常工作,在 gridview 中显示所有内容。
这是我在 .aspx 文件中的 Gridview 中尝试过的内容:
GridLines="Both"
没有解决我的问题。
还在我的 GridView 中尝试了以下操作:
CellPadding="4" CellSpacing="1" BackColor="White" RowStyle-BackColor="white" BorderStyle="Double" GridLines="Both"
运气不好。
在函数 "rep_ItemDataBound()" 函数中的 .aspx.cs 文件中,我尝试设置网格线以测试它是否有效:
//c is my control for the GridViev. This atleast changes the color for the GridView
GridView g = c as GridView;
g.Attributes["style"] = "border-color: #c3cecc";
没有解决我的问题。
我还尝试为每个 cell/row:
设置边框
foreach (GridViewRow tr in g.Rows)
{
foreach (TableCell tc2 in tr.Cells)
{
tc2.Attributes["style"] = "border-color: #c3cecc";
}
}
没有解决我的问题。我已经搜索了很多,看看是否有解决我的问题的方法,但我找不到与我的问题相关的任何内容。
编辑:澄清一下,我没有在我的代码中的任何其他地方触及 GridView/Repeater,只是在我发布的代码中。好吧,除了为中继器设置数据源和数据绑定。
嗯,这很尴尬...
显然我一定是很久以前不小心将我的网页缩小了一点(CTRL + 鼠标滚轮向下)。由于某种原因,缩小会导致网格线显示不正确。事实上,当在页面上缩放 in/out 时它们不会正确显示,这对我来说不是问题。不敢相信我花了将近七个小时才弄明白。
我认为我的标题解释了我遇到的问题。我的问题的屏幕截图以获得更多说明: Gridlines not showing when I'm scolled to the top of my page
Gridlines showing when I'm scolled to the bottom of my page
相关代码,.aspx文件:
<asp:Repeater ID="rep" runat="server" OnItemDataBound="rep_ItemDataBound">
<ItemTemplate>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
EnableModelValidation="True"
Position=relative OnRowCommand="GridView1_RowCommand"
AllowPaging="false" ShowFooter="false"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
OnRowCreated="GridView1_RowCreated" OnRowDataBound="GridView1_RowDataBound"
Width="90%">
<Columns>
//a few TemplateFields with ItemTemplates inside of them,
and some DataBinder to display the information.
//I'm not doing anything with the border inside the TemplateFields.
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:Repeater>
我在.aspx.cs文件中的相关代码:
protected void rep_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
foreach(Control c in e.Item.Controls)
{
if(c as Label != null)
{
GetIoTName(varv);
(c as Label).Text = "<br>" + GetIoTName(varv) + "</br>";
}
if (c as GridView != null)
{
(c as GridView).DataSource = AllConnectedDevices[varv];
(c as GridView).DataBind();
}
}
}
数据绑定正常工作,在 gridview 中显示所有内容。
这是我在 .aspx 文件中的 Gridview 中尝试过的内容:
GridLines="Both"
没有解决我的问题。 还在我的 GridView 中尝试了以下操作:
CellPadding="4" CellSpacing="1" BackColor="White" RowStyle-BackColor="white" BorderStyle="Double" GridLines="Both"
运气不好。 在函数 "rep_ItemDataBound()" 函数中的 .aspx.cs 文件中,我尝试设置网格线以测试它是否有效:
//c is my control for the GridViev. This atleast changes the color for the GridView
GridView g = c as GridView;
g.Attributes["style"] = "border-color: #c3cecc";
没有解决我的问题。 我还尝试为每个 cell/row:
设置边框foreach (GridViewRow tr in g.Rows)
{
foreach (TableCell tc2 in tr.Cells)
{
tc2.Attributes["style"] = "border-color: #c3cecc";
}
}
没有解决我的问题。我已经搜索了很多,看看是否有解决我的问题的方法,但我找不到与我的问题相关的任何内容。
编辑:澄清一下,我没有在我的代码中的任何其他地方触及 GridView/Repeater,只是在我发布的代码中。好吧,除了为中继器设置数据源和数据绑定。
嗯,这很尴尬...
显然我一定是很久以前不小心将我的网页缩小了一点(CTRL + 鼠标滚轮向下)。由于某种原因,缩小会导致网格线显示不正确。事实上,当在页面上缩放 in/out 时它们不会正确显示,这对我来说不是问题。不敢相信我花了将近七个小时才弄明白。