一个关于gridview比较棘手的问题,初学者求解决思路
需求:从某处接受来一个datatable,显示在gridview上,客户在看gridview,看到一半想下次再看了,就在他看到的这一行单击一下,关闭页面,等到下次打开这个页面时能自动移动scrollbar(只有一页,并且被抱括在scrollbar中)定位到上次看的那一条,类似一个书签的功能,只不过是在gridview上实现。最好的效果是如果我单击的这条数据在我下次打开之前变位置了,下次打开后也能准确定位。 --------------------编程问答-------------------- 以前做过一个差不多的 一个静态变量 记录下这条记录的主键 然后下次load的时候用js控制进度条类似下面这个
var girdView= document.getElementById('girdView');--------------------编程问答--------------------
girdView.onload = function () {
girdView.contentWindow.scrollTo(x,y);
}
那输入这条数据改变的话,会正常显示吗 --------------------编程问答--------------------
数据库改变了,肯定会显示数据库的值啊,但是如果数据库增加或删除了的话,就不会显示到上次那一条了。 --------------------编程问答--------------------
以前做过一个差不多的 一个静态变量 记录下这条记录的主键 然后下次load的时候用js控制进度条
类似下面这个
var girdView= document.getElementById('girdView');
girdView.onload = function () {
girdView.contentWindow.scrollTo(x,y);
}
那输入这条数据改变的话,会正常显示吗
我觉得你做分页显示的话好做一些,直接给他显示上次看到的页数。
数据库改变了,肯定会显示数据库的值啊,但是如果数据库增加或删除了的话,就不会显示到上次那一条了。 --------------------编程问答--------------------
以前做过一个差不多的 一个静态变量 记录下这条记录的主键 然后下次load的时候用js控制进度条
类似下面这个
var girdView= document.getElementById('girdView');
girdView.onload = function () {
girdView.contentWindow.scrollTo(x,y);
}
那输入这条数据改变的话,会正常显示吗
我觉得你做分页显示的话好做一些,直接给他显示上次看到的页数。
数据库改变了,肯定会显示数据库的值啊,但是如果数据库增加或删除了的话,就不会显示到上次那一条了。
如果数据值改变肯定是正常的显示 通过主键去找到这条记录 如果这条记录被删除了..那肯定找不到啊 --------------------编程问答-------------------- 你可以修改一下这个javascript代码,应该能实现你的需求
<script type="text/javascript">
//颜色值推荐使用Hex,如 #f00 或 #ff0000
window.onload = function () {
GridViewColor("<%=gvList.ClientID%>", "#fff", "#eee", "#6df", "#fd6");
}
//GridView ID, 正常行背景色,交替行背景色,鼠标指向行背景色,鼠标点击后背景色
function GridViewColor(GridViewId, NormalColor, AlterColor, HoverColor, SelectColor) {
//获取所有要控制的行
var AllRows = document.getElementById(GridViewId).getElementsByTagName("tr");
//设置每一行的背景色和事件,循环从1开始而非0,可以避开表头那一行
for (var i = 1; i < AllRows.length; i++) {
//设定本行默认的背景色
AllRows[i].style.background = i % 2 == 0 ? NormalColor : AlterColor;
//处于选中状态的行发生这两个事件时不改变颜色
if (HoverColor != "") {
AllRows[i].onmouseover = function () { if (!this.selected) this.style.background = HoverColor; }
if (i % 2 == 0) {
AllRows[i].onmouseout = function () { if (!this.selected) this.style.background = NormalColor; }
}
else {
AllRows[i].onmouseout = function () { if (!this.selected) this.style.background = AlterColor; }
}
}
//如果指定了鼠标点击的背景色,则添加onclick事件
//在事件响应中修改被点击行的选中状态
if (SelectColor != "") {
AllRows[i].onclick = function () {
this.style.background = this.style.background == SelectColor ? HoverColor : SelectColor;
this.selected = !this.selected;
}
}
}
}
</script>
实现思路:
1.加载js判断上传用户是否点击了某行数据,ID是否存在,如果存在
根据读取的ID,定位到与girdView相同ID行上。
2.使用js获取用户点击的那行数据ID并保存到表中 --------------------编程问答-------------------- 那我如何读取并记录下我所单击的那条数据的主键呢 --------------------编程问答--------------------
以前做过一个差不多的 一个静态变量 记录下这条记录的主键 然后下次load的时候用js控制进度条
类似下面这个
var girdView= document.getElementById('girdView');
girdView.onload = function () {
girdView.contentWindow.scrollTo(x,y);
}
那我如何读取并记录下我所单击的那条数据的主键呢 --------------------编程问答--------------------
你可以修改一下这个javascript代码,应该能实现你的需求
<script type="text/javascript">
//颜色值推荐使用Hex,如 #f00 或 #ff0000
window.onload = function () {
GridViewColor("<%=gvList.ClientID%>", "#fff", "#eee", "#6df", "#fd6");
}
//GridView ID, 正常行背景色,交替行背景色,鼠标指向行背景色,鼠标点击后背景色
function GridViewColor(GridViewId, NormalColor, AlterColor, HoverColor, SelectColor) {
//获取所有要控制的行
var AllRows = document.getElementById(GridViewId).getElementsByTagName("tr");
//设置每一行的背景色和事件,循环从1开始而非0,可以避开表头那一行
for (var i = 1; i < AllRows.length; i++) {
//设定本行默认的背景色
AllRows[i].style.background = i % 2 == 0 ? NormalColor : AlterColor;
//处于选中状态的行发生这两个事件时不改变颜色
if (HoverColor != "") {
AllRows[i].onmouseover = function () { if (!this.selected) this.style.background = HoverColor; }
if (i % 2 == 0) {
AllRows[i].onmouseout = function () { if (!this.selected) this.style.background = NormalColor; }
}
else {
AllRows[i].onmouseout = function () { if (!this.selected) this.style.background = AlterColor; }
}
}
//如果指定了鼠标点击的背景色,则添加onclick事件
//在事件响应中修改被点击行的选中状态
if (SelectColor != "") {
AllRows[i].onclick = function () {
this.style.background = this.style.background == SelectColor ? HoverColor : SelectColor;
this.selected = !this.selected;
}
}
}
}
</script>
实现思路:
1.加载js判断上传用户是否点击了某行数据,ID是否存在,如果存在
根据读取的ID,定位到与girdView相同ID行上。
2.使用js获取用户点击的那行数据ID并保存到表中
能加个q详细请教一下嘛
补充:.NET技术 , ASP.NET