发现一个关于数据表格ASP:DataGrid有趣而蛋疼的问题。
那就是数据表格很难消去。表格代码如下:
<TD id="TD1">
<div style="OVERFLOW: auto; HEIGHT: 100%;">
<asp:datagrid id="dg" runat="server" Font-Size="12px" Width="100%" BorderColor="Silver" AutoGenerateColumns="False" OnItemCommand="dg_ItemCommand">
<SelectedItemStyle BackColor="Yellow"></SelectedItemStyle>
<AlternatingItemStyle BackColor="WhiteSmoke"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center" Height="24px"></ItemStyle>
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" Height="24px" ForeColor="White" BackColor="DarkGreen"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="序号"><%--0--%>
<ItemTemplate>
<%# ( this.dg.CurrentPageIndex * this.dg.PageSize + Container.ItemIndex + 1) %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="xxx"></asp:BoundColumn><%--1--%>
<asp:BoundColumn DataField="yyy"></asp:BoundColumn><%--2--%>
<asp:BoundColumn DataField="zzz"></asp:BoundColumn><%--3--%>
<asp:BoundColumn DataField="aaa"></asp:BoundColumn><%--4--%>
</Columns>
</asp:datagrid>
</div>
</TD>
无论是通过js,CSS,操作TD级,DIV级,ASP:DataGrid级。如:
visibility:hidden;
width=0px;width=0%;idth=0;
style=“……”都无法彻底删除。会形成这样一种神奇的效果
当你调整字体时,这个框还会变化。
这是在IE,可以看到边框,可以猜到是datagrid造成的问题。在chrome中连边框都没有,更加迷惑。
最终还是放弃,只有在后台将这个ASP:Datagrid隐藏才可以彻底消除。
超级简单的语句 dg.Visible = false。
本来不信邪,就想使用前端方法将ASP:DataGrid隐藏。后来我服了。真香。
当然我的前端水平一片稀烂,如果有大佬指导怎么隐藏。希望能够解惑。万分感谢。
另外一个,编写js中忽然发现以function clear() 命名的方法不好使。
<%@ Page language="c#" Codebehind="aa.cs" AutoEventWireup="True" Inherits="test" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>test</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<SCRIPT language="JavaScript">
function clear()
{
alert(111);
}
</SCRIPT>
</HEAD>
<body style="MARGIN: 0px" bgColor="#f6f6f6" MS_POSITIONING="GridLayout">
<form id="Form1" encType="multipart/form-data" method="post" runat="server">
<asp:button id="Button3" runat="server" Text="tttt" Font-Size="12px" Width="70px" Height="30px" OnClientClick="clear()"></asp:button>
</form>
</body>
</html>
其实发现这个问题时就基本认定是与默认方法冲突了。果然换了一个名字就好使了。
后来还是发现了解决办法。记录一下
其实也非常简单,就是在方法前加一个window。这样就不会和默认方法document.clear()冲突了。
<asp:button id="Button3" runat="server" Text="tttt" Font-Size="12px" Width="70px" Height="30px" OnClientClick="window.clear()"></asp:button>