- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要同时卡住列 0、1 我想要行(不是 HEADER,HEADER 是隐藏的)0、1、2 以及当用户向上和向下滚动以及从左向右滚动时卡住这些列和行在那里是静态的,我尝试了一些 jQuery 代码但没有用,我在 Stack Overflow 问题中找到了这个 CSS 示例,我将它用于我的元素。到目前为止,我只是使用列来尽快完成这项工作,但是我需要像我之前所说的那样锁定行。
我在 HTML 表中有一个 gridview ASP.NET C#,在“加载页面”事件中,网格会填充数据表信息。此数据表从 SQL 数据库获取信息。
我在事件触发时在网格上应用 CSS,所有这些工作正常!
为了让您了解网格的外观,这里有一个示例:
你看不到水平滚动条,因为用户选择了年数,但这可以根据他的选择而改变。
这是我最近使用的 CSS:
.pinned
{
position:fixed;
background-color: #FFFFFF;
z-index: 100;
}
.scrolled
{
position: relative;
left: 150px;
overflow: hidden;
white-space: nowrap;
min-width: 50px;
}
.col1
{
left: 0px;
width: 50px;
}
.col2
{
left: 50px;
width: 100px;
}
HTML:
<div style="overflow:scroll; height: 400px; width: 911px; margin:auto;">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" GridLines="Vertical" OnRowCreated="COl" OnRowDataBound="ROWCSS" ShowHeader="false">
</asp:GridView>
</div>
这是 C# 代码,当 rowcreated 事件触发时:然后我 colspan 标题(前 3 行 -0,1,2-)
当 rowdatabound 触发时:然后我应用 CSS 字体和背景颜色:
protected void ROWCSS(object sender, GridViewRowEventArgs e)
{
int i = e.Row.Cells.Count;
int index = e.Row.RowIndex;
if (e.Row.RowType == DataControlRowType.DataRow)
{
//THIS IS THE FOR, THAT LOCKS THE COLUMN 0 and 1 ************
for (int j = 0; j <= (i - 1); j++)
{
if (j == 0)
{
e.Row.Cells[j].CssClass = "pinned col1";
}
else if (j == 1)
{
e.Row.Cells[j].CssClass = "pinned col2";
}
else
{
e.Row.Cells[j].CssClass = "scrolled";
}
}
//********************************
if (index == 3 || index == 32 || index == 46 || index == 50)
{
for (int j = 0; j <= (i - 1); j++)
{
//Si la columna es la 0 o la 1, entonces aplicar formato izquierdo
if (j == 0 || j == 1)
{
e.Row.Cells[j].CssClass = "naranjaCSSLEFT";
}
//En caso contrario, formato derecho
else
{
e.Row.Cells[j].CssClass = "naranjaCSSRIGHT";
}
}
}
else if (index == 4 || index == 15 || index == 29 || index == 33 || index == 41)
{
for (int j = 0; j <= (i - 1); j++)
{
//Si la columna es la 0 o la 1, entonces aplicar formato izquierdo
if (j == 0 || j == 1)
{
e.Row.Cells[j].CssClass = "azulCSSLEFT";
}
//En caso contrario, formato derecho
else
{
e.Row.Cells[j].CssClass = "azulCSSRIGHT";
}
}
}
else if (!(index == 0 || index == 1 || index == 2))
{
for (int j = 0; j <= (i - 1); j++)
{
//Si la columna es la 0 o la 1, entonces aplicar formato izquierdo
if (j == 0 || j == 1)
{
e.Row.Cells[j].CssClass = "negroCSSLEFT";
}
//En caso contrario, formato derecho
else
{
e.Row.Cells[j].CssClass = "negroCSSRIGHT";
}
}
}
}
}
最后这是我用来为字体和背景着色的一些CSS(不确定是否有必要提供):
.naranjaCSSLEFT
{
font-weight:bold;
color:#C65911;
font-size: 13px;
text-align:left;
font-family:tahoma;
}
.naranjaCSSRIGHT
{
font-weight:bold;
color:#C65911;
font-size: 13px;
text-align:right;
font-family:tahoma;
}
.azulCSSLEFT
{
font-weight:bold;
color:#2F75B5;
font-size: 13px;
text-align:left;
font-family:tahoma;
}
.azulCSSRIGHT
{
font-weight:bold;
color:#2F75B5;
font-size: 13px;
text-align:right;
font-family:tahoma;
}
.negroCSSLEFT
{
font-weight:normal;
color:#000000;
font-size: 13px;
text-align:left;
font-family:tahoma;
}
.negroCSSRIGHT
{
font-weight:normal ;
color:#000000;
font-size: 13px;
text-align:right;
font-family:tahoma;
}
.FILACSS
{
font-weight:bold ;
color:#FFFFFF;
font-size: 13px;
text-align:center;
font-family:tahoma;
background:#2F75B5;
border:hidden;
}
如果你想知道应用后我得到了什么,那就是:
看起来:搞砸了!前 3 行……不知道发生了什么。 colspan 应用于不同的事件。
如果您想知道 colspan Rowcreated 事件是什么,这是:
protected void COl(object sender, GridViewRowEventArgs e)
{
int index = e.Row.RowIndex;
int i = e.Row.Cells.Count;
if (i == 4)
{
if (index == 0)
{
for (int j = 2; j <= (i - 1); j++)
{
//e.Row.Cells[j].CssClass = "GVFixedHeader";
e.Row.Cells[j].CssClass = "FILACSS";
}
// e.Row.Cells[2].Text = "ACUMULADO DE ENERO - " + NomMes;
e.Row.Cells[2].ColumnSpan = 2;
e.Row.Cells.RemoveAt(3);
}
if (index == 1)
{
for (int j = 2; j <= (i - 1); j++)
{
e.Row.Cells[j].CssClass = "FILACSS";
}
}
if (index == 2)
{
for (int j = 2; j <= (i - 1); j++)
{
e.Row.Cells[j].CssClass = "FILACSS";
}
}
}
if (i == 8)
{
if (index == 0)
{
for (int j = 2; j <= (i - 1); j++)
{
//e.Row.Cells[j].CssClass = "FILACSS";
e.Row.Cells[j].CssClass = "FILACSS";
}
//*******************************
//e.Row.Cells[0].Text = "ACUMULADO DE ENERO - " + NomMes;
e.Row.Cells[2].ColumnSpan = 6;
for (int b = 7; b >= 3; b--)
{
e.Row.Cells.RemoveAt(b);
}
}
if (index == 1)
{
for (int j = 2; j <= (i - 1); j++)
{
//e.Row.Cells[j].CssClass = "FILACSS";
e.Row.Cells[j].CssClass = "FILACSS";
}
//******************************
for (int b = 2; b <= 6; b++)
{
e.Row.Cells[b].ColumnSpan = 2;
b++;
}
for (int b = 7; b >= 3; b--)
{
e.Row.Cells.RemoveAt(b);
b--;
}
}
if (index == 2)
{
for (int j = 2; j <= (i - 1); j++)
{
//e.Row.Cells[j].CssClass = "FILACSS";
e.Row.Cells[j].CssClass = "FILACSS";
}
}
}
if (i == 10)
{
if (index == 0)
{
for (int j = 2; j <= (i - 1); j++)
{
e.Row.Cells[j].CssClass = "FILACSS";
}
//*******************************
//e.Row.Cells[2].Text = "ACUMULADO DE ENERO - " + NomMes;
e.Row.Cells[2].ColumnSpan = 8;
for (int b = 9; b >= 3; b--)
{
e.Row.Cells.RemoveAt(b);
}
}
if (index == 1)
{
for (int j = 2; j <= (i - 1); j++)
{
e.Row.Cells[j].CssClass = "FILACSS";
}
//******************************
for (int b = 2; b <= 8; b++)
{
e.Row.Cells[b].ColumnSpan = 2;
b++;
}
for (int b = 9; b >= 3; b--)
{
e.Row.Cells.RemoveAt(b);
b--;
}
}
if (index == 2)
{
for (int j = 2; j <= (i - 1); j++)
{
e.Row.Cells[j].CssClass = "FILACSS";
}
}
}
if (i == 12)
{
if (index == 0)
{
for (int j = 2; j <= (i - 1); j++)
{
e.Row.Cells[j].CssClass = "FILACSS";
}
//*******************************
//e.Row.Cells[2].Text = "ACUMULADO DE ENERO - " + NomMes;
e.Row.Cells[2].ColumnSpan = 10;
for (int b = 11; b >= 3; b--)
{
e.Row.Cells.RemoveAt(b);
}
}
if (index == 1)
{
for (int j = 2; j <= (i - 1); j++)
{
e.Row.Cells[j].CssClass = "FILACSS";
}
//******************************
for (int b = 2; b <= 10; b++)
{
e.Row.Cells[b].ColumnSpan = 2;
b++;
}
for (int b = 11; b >= 3; b--)
{
e.Row.Cells.RemoveAt(b);
b--;
}
}
if (index == 2)
{
for (int j = 2; j <= (i - 1); j++)
{
e.Row.Cells[j].CssClass = "FILACSS";
}
}
}
}
列尚未卡住。
最佳答案
昨晚我一直在研究这个问题,我找到了第 0 列和第 1 列的解决方案,但我仍然没有卡住第一行 (0、1、2)。我工作的这个例子卡住了标题,但正如我之前所说,我将隐藏标题。
这是我正在应用的新代码:
HTML:
<div>
<asp:GridView ID="cphMain_cphMain_cphMain_GridView2" runat="server" Width="100%" AutoGenerateColumns="true" GridLines="None"
OnRowCreated="COl" OnRowDataBound="ROWCSS">
<RowStyle HorizontalAlign="Left" VerticalAlign="Middle" Wrap="False" />
</asp:GridView>
<script type="text/javascript">
$(document).ready(function () {
$('#cphMain_cphMain_cphMain_GridView2').gridviewScroll({
width: 930,
height: 400,
freezesize: 2
});
});
</script>
</div>
在“head”部分我放置了这些脚本地址:
HTML:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<script src="JQuery/GridViewHeader.js"></script>
为了向网格提供 CSS 格式,我使用了与上面提到的相同的事件,但 CSS 扩展除外:固定、col1、col2、滚动。
不再使用:
//THIS IS THE FOR, THAT LOCKS THE COLUMN 0 and 1 ************
for (int j = 0; j <= (i - 1); j++)
{
if (j == 0)
{
e.Row.Cells[j].CssClass = "pinned col1";
}
else if (j == 1)
{
e.Row.Cells[j].CssClass = "pinned col2";
}
else
{
e.Row.Cells[j].CssClass = "scrolled";
}
}
//********************************
如果你质疑里面的代码是什么:
<script src="JQuery/GridViewHeader.js"></script>
你可以在这里查看(老实说我看不懂这个我只是找到它并复制粘贴):
http://gridviewscroll.aspcity.idv.tw/Scripts/gridviewScroll.min.js?20130319
我的例子来自:
关于c# - Gridview ASP.NET 锁定第一列和第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33002650/
创建使用.NET框架的asp.net页面时,访问该页面的客户端是否需要在其计算机上安装.NET框架? IE。用户访问www.fakesite.com/default.aspx,如果他们没有安装框架,他
我阅读了很多不同的博客和 StackOverflow 问题,试图找到我的问题的答案,但最后我找不到任何东西,所以我想自己问这个问题。 我正在构建一个应用程序,其中有一个长时间运行的工作线程,它执行一些
已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 我一直想知道为什么微软为这样一个伟大的平台选择了一个如此奇怪的、对搜索引擎不友好的名称。他们就
.Net Framework .Net .NET Standard的区别 1、.NET Framework 在未来.NET Framework或许成为过去时,目前还是有很多地方在使用的。这一套
如果有选择的话,您会走哪条路? ASP.NET Webforms + ASP.NET AJAX 或 ASP.NET MVC + JavaScript Framework of your Choice
我有一个 Web 服务,它通过专用连接通过 https 使用第三方 Web 服务,我应用了 ServicePointManager.ServerCertificateValidationCallbac
为什么我应该选择ASP.NET Web Application (.NET Framework)而不是ASP.NET Core Web Application (.NET Framework)? 我在
我在网络上没有找到任何关于包含 .NET Standard、.NET Core 和 .NET Framework 项目的 .NET 解决方案的公认命名约定。 就我而言,我们在 .NET 框架项目中有以
.NET Compact 是 .NET 的完美子集吗? 假设我考虑了屏幕大小和其他限制并避免了 .NET Compact 不支持的类和方法,或者 .NET Compact 是一个不同且不兼容的 GUI
我已经阅读了所有我能找到的关于 connectionManagement 中的 maxconnection 设置的文章:即 http://support.microsoft.com/kb/821268
我现在正在使用asp.net mvc,想知道使用内置的Json或 Json.Net哪个是更好的选择,但我不确定一个人是否比另一个人有优势。 另外,如果我确实选择沿用Json.Net的路线,那么我应该选
在 Visual Studio 中,您至少可以创建三种不同类型的类库: 类库(.NET Framework) 类库(.NET 标准) 类库(.NET Core) 虽然第一个是我们多年来一直使用的,但我
.NET 和 ASP.NET 之间有什么区别?它们有什么关系? 最佳答案 ASP.Net 基于 .Net 框架构建,提供有关 Web 开发的附加功能。 你可以去看看wikipedia article
在安装更高版本(3.0)之前,我需要安装.net框架1.1和2.0吗?或者单独安装 3.0 框架就足够了,并为在早期框架版本上编写的软件提供支持?谢谢 ,丽然 最佳答案 不,您不必安装以前的框架。 我
我正在开发一个项目,人们可以“更新”类别,例如更改类别的名称。我收到以下消息 This is called after clicking update 按钮 with the SQL statemen
.NET 类 System.Net.CookieContainer 线程安全吗? --更新:交 key 答复-- 是否有任何方法可以确保异步请求期间修改的变量(即 HttpWebRequest.Coo
我正在使用 JScript.NET 在我编写的 C# WinForms 应用程序中编写脚本。它工作得很好,但我只是尝试在脚本中放置一些异常处理,但我无法弄清楚如何判断我的 C# 代码抛出了哪种类型的异
我需要你的帮助, 比如我有一个小数类型的变量,我想这样取整。 例如 3.0 = 3 3.1 = 4 3.2 = 4 3.3 = 4 3.4 = 4 3.5 = 4 3.6 = 4 3.7 = 4 3.
我使用过这样的代码:http://msdn.microsoft.com/en-us/library/dw70f090.aspx在 ASP.NET 中工作之前访问数据库(2-3 年前)。我没有意识到我正
自 ConfigurationManager .NET Standard 中不存在,检索正在执行的程序集的应用程序设置的最佳方法是什么,无论是 web.config或 appSettings.{env
我是一名优秀的程序员,十分优秀!