社区
C#
帖子详情
关于GridView列中调用javascript一些问题,
qq5357612
2011-11-29 04:29:58
直接调用javascript的时候,会弹出一个DIV,如果用GridView里的连接来就会一闪而过,因为gridview是放在表单内的,我一点连接,整个页面刷新了。所以中间出现的DIV也被刷新了。
能有什么办法 点表单的连接 不刷新页面吗,这样我才能在CS里写调用javascript的东西
...全文
83
6
打赏
收藏
关于GridView列中调用javascript一些问题,
直接调用javascript的时候,会弹出一个DIV,如果用GridView里的连接来就会一闪而过,因为gridview是放在表单内的,我一点连接,整个页面刷新了。所以中间出现的DIV也被刷新了。 能有什么办法 点表单的连接 不刷新页面吗,这样我才能在CS里写调用javascript的东西
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
longbin891012
2011-11-30
打赏
举报
回复
运用
int[] 列索引集合
将第1列的单元格格一样的数据合并..
GroupRows(GridView1,new int[]{0});
全部代码
/// <summary>
/// GridView合并行 zgke@sina.com qq:116149
/// </summary>
/// <param name="p_GridView">Grid控件</param>
/// <param name="p_ColumnsIndex">列索引</param>
public static void GroupRows(GridView p_GridView, int[] p_ColumnsIndex)
{
int _Count = p_GridView.Rows.Count;
string[] _TempText = new string[p_ColumnsIndex.Length];
int[] _RowIndex = new int[p_ColumnsIndex.Length];
for (int i = 0; i != _Count; i++)
{
string _CellText = "";
for (int z = 0; z != p_ColumnsIndex.Length; z++)
{
_CellText += p_GridView.Rows[i].Cells[p_ColumnsIndex[z]].Text;
if (_TempText[z] == _CellText)
{
p_GridView.Rows[i].Cells[p_ColumnsIndex[z]].Visible = false;
p_GridView.Rows[_RowIndex[z]].Cells[p_ColumnsIndex[z]].RowSpan++;
}
else
{
_RowIndex[z] = i;
_TempText[z] = _CellText;
p_GridView.Rows[_RowIndex[z]].Cells[p_ColumnsIndex[z]].RowSpan = 1;
}
}
}
}
-------------------------------------------------------另一种
///
/// 合并GridView列中相同的行
///
/// GridView对象
/// 需要合并的列
public static void GroupRows(GridView GridView1, int cellNum)
{
int i = 0, rowSpanNum = 1;
while (i < GridView1.Rows.Count - 1)
{
GridViewRow gvr = GridView1.Rows[i];
for (++i; i < GridView1.Rows.Count; i++)
{
GridViewRow gvrNext = GridView1.Rows[i];
if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)
{
gvrNext.Cells[cellNum].Visible = false;
rowSpanNum++;
}
else
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
rowSpanNum = 1;
break;
}
if (i == GridView1.Rows.Count - 1)
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
}
}
}
}
///
/// 根据条件列合并GridView列中相同的行
///
/// GridView对象
/// 需要合并的列
/// /// 条件列(根据某条件列还合并)
public static void GroupRows(GridView GridView1, int cellNum, int cellNum2)
{
int i = 0, rowSpanNum = 1;
while (i < GridView1.Rows.Count - 1)
{
GridViewRow gvr = GridView1.Rows[i];
for (++i; i < GridView1.Rows.Count; i++)
{
GridViewRow gvrNext = GridView1.Rows[i];
if (gvr.Cells[cellNum].Text + gvr.Cells[cellNum2].Text == gvrNext.Cells[cellNum].Text + gvrNext.Cells[cellNum2].Text)
{
gvrNext.Cells[cellNum].Visible = false;
rowSpanNum++;
}
else
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
rowSpanNum = 1;
break;
}
if (i == GridView1.Rows.Count - 1)
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
}
}
}
}
第二个方法只是在第一个方法的修改了一点点, 在判断单元格的时候,加上了一个条件列:
if (gvr.Cells[cellNum].Text + gvr.Cells[cellNum2].Text == gvrNext.Cells[cellNum].Text + gvrNext.Cells[cellNum2].Text)。当然,第二个方法还可以扩展,根据多个列的条件来合并。
-----------------------------------------------------------------
/// <summary>
/// 合并单元格
/// </summary>
/// <param name="gridView">要合并单元格的表单</param>
/// <param name="ArryJudgeCell">判断的列</param>
/// <param name="ArryCellNum">要合并的列</param>
public static void DoUniteGroupRowsGrid(GridView gridView, int[] ArryJudgeCell, int[] ArryCellNum)
{
int i = 0, rowSpanNum = 1;
bool flagSame = true;
while (i < gridView.Rows.Count - 1)
{
// 得到当前行
GridViewRow gvrThis = gridView.Rows[i];
for (++i; i < gridView.Rows.Count; i++)
{
GridViewRow gvrNext = gridView.Rows[i];
for (int j = 0; j < ArryJudgeCell.Length; j++)
{
flagSame = true;
if (gvrThis.Cells[ArryJudgeCell[j]].Text != gvrNext.Cells[ArryJudgeCell[j]].Text)
{
flagSame = false;
break;
}
}
if (flagSame)
{
for (int k = 0; k < ArryCellNum.Length; k++)
{
gvrNext.Cells[ArryCellNum[k]].Visible = false;
}
rowSpanNum++;
}
else
{
for (int k = 0; k < ArryCellNum.Length; k++)
{
gvrThis.Cells[ArryCellNum[k]].RowSpan = rowSpanNum;
}
rowSpanNum = 1;
break;
}
if (i == gridView.Rows.Count - 1)
{
for (int k = 0; k < ArryCellNum.Length; k++)
{
gvrThis.Cells[ArryCellNum[k]].RowSpan = rowSpanNum;
}
}
}
}
}
qq5357612
2011-11-30
打赏
举报
回复
[Quote=引用 4 楼 net_lover 的回复:]
<a onclick="showDIv();return false"
[/Quote]
我已经解决了 这个是正解,谢谢大家关心
孟子E章
2011-11-29
打赏
举报
回复
<a onclick="showDIv();return false"
1800包吃包住
2011-11-29
打赏
举报
回复
无刷新技术
或者你用JS写!!!
tajear
2011-11-29
打赏
举报
回复
1、获取gridview里的链接对象,进行 Attributes.Add(脚本事件,脚本内容)
2、会刷新的话,你要页面刷新前吧div显示的状态值保留在一个隐藏域里,页面加载时根据设个值去判定是否呈现div
参考:GridView鼠标移动行变色http://www.cnblogs.com/lovenets/articles/808071.html
阿非
2011-11-29
打赏
举报
回复
什么?
ASP.NET
Gridview
隐藏/显示列源码
ASP.NET实现
Gridview
隐藏/显示列源码 介绍: 这篇文章演示如果让用户有显示/隐藏他们需要的
GridView
的列的功能,这是非常有用的,因为在
GridView
的所有列并不是每个的用户都需要的.用户想根据自己的需求看到想要的列.而不是显示一个巨大的
gridview
,霸占了整个屏幕,而是一个整洁的
Gridview
,而且它有所有你需要的列.对于页面的打印这也是一个非常有用的技术,因为用户可以灵活地选择
GridView
的列打印。 背景: RowCreated 和ItemDataBound 事件允许你用多种方式注入HTML, CSS,和
JavaScript
来增强
GridView
控件的功能。 文章将会演示两种显示和隐藏
GridView
列的方法,一种是客户端的方法,另外一种是服务段的方法. 在客户段显示和隐藏
GridView
的列 大部分代码是在
GridView
的RowCreated事件生成客户端的功能的。当
GridView
的Header行被创建后,一个带负号的HyperLink被插入每个Header行的单元格中用来隐藏列。 这个hyperlink通过它的onclick事件
调用
一个HideCol的
Javascript
方法,CSS类用来增加负号的大小,当每个数据行被创建的时候,一个Id将会被添加到每行中用来让
Javascript
区分每一行. 代码 protected void
GridView
1_RowCreated(object sender,
GridView
RowEventArgs e) {
GridView
gridView
= (
GridView
)sender; StringBuilder sb = new StringBuilder(); // For the header row add a link to each header // cell which can call the HideCol
javascript
method if (e.Row.RowType == DataControlRowType.Header) { // Loop through each cell of the row for (int columnIndex = 0; columnIndex 0) { Label columnTextLabel = new Label(); columnTextLabel.Text = e.Row.Cells[columnIndex].Text; e.Row.Cells[columnIndex].Controls.Add(columnTextLabel); } } } // Give each row an id if (e.Row.RowType == DataControlRowType.Pager) e.Row.Attributes.Add("id",
gridView
.ClientID + "_pager"); else e.Row.Attributes.Add("id",
gridView
.ClientID + "_r" + e.Row.RowIndex.ToString()); } SetupShowHideColumns方法中生成“Show Columns”下拉菜单的HTML,输出在Literal控件上面 。 代码 private void SetupShowHideColumns(
GridView
gridView
, Literal showHideColumnsLiteral) { StringBuilder sb = new StringBuilder(); sb.Append(""); sb.Append(""); sb.Append("- Show Column -"); showHideColumnsLiteral.Text = sb.ToString(); } 在数据绑定到
GridView
之后,其余的工作由ShowHideColumns.js中的
javascript
来完成.当列头的hyperlink被点击的时候后,它将会传递
GridView
的名字,列的索引和列名给HideCol方法,这个方法能找到这一列的每个单元格,每个单元格的将添加display:none样式,用来隐藏这一列. 当选择"Show Column"中的选项后,
Javascript
方法ShowCol将会被
调用
,它将移除每个单元格的display:none样式,这一列将会被再次显示. 在服务端显示/隐藏
GridView
的列 服务端的例子将通过RowCreated事件给每个列头添加一个负号,这次是使用LinkButton控件.设置CommandName和CommandArgument属性,这样当通过LinkButton引发RowCommand事件时,相关的列都可以隐藏。以前隐藏的列索引存储在一个List中,这些列在建立时,将会被隐藏的。 代码 protected void
GridView
1_RowCreated(object sender,
GridView
RowEventArgs e) { // For the header row add a link button to each header // cell which can execute a row command if (e.Row.RowType == DataControlRowType.Header) { // Loop through each cell of the header row for (int columnIndex = 0; columnIndex 0) { Label columnTextLabel = new Label(); columnTextLabel.Text = e.Row.Cells[columnIndex].Text; e.Row.Cells[columnIndex].Controls.Add(columnTextLabel); } } } // Hide the column indexes which have been stored in hiddenColumnIndexes foreach(int columnIndex in hiddenColumnIndexes) if (columnIndex 0) { this.
GridView
1ShowHideColumns.Visible = true; this.
GridView
1ShowHideColumns.Items.Add(new ListItem("-Show Column-", "-1")); foreach (int i in hiddenColumnIndexes) this.
GridView
1ShowHideColumns.Items.Add( new ListItem(columnNames[i], i.ToString())); } else { this.
GridView
1ShowHideColumns.Visible = false; } } 示例项目的例子: 客户端的例子: •C#.NET - Client-side example accessing data stored in session. •C#.NET - Client-side example which includes: MasterPage, UpdatePanel,
GridView
editing, paging and sorting, accessing data via the SqlDataSource control. •VB.NET - Client-side example accessing data stored in session. 服务端的例子 •C#.NET - Server-side example accessing data stored in session. •C#.NET - Server-side example which includes: MasterPage, UpdatePanel,
GridView
editing, paging and sorting, accessing data via the SqlDataSource control. •VB.NET - Server-side example accessing data stored in session. 结论: 如果你想让你的用户能够显示和隐藏在ASP.NET
GridView
的列,那么这种技术可能是非常有用的。 原文:http://www.codeproject.com/KB/webforms/ShowHide
Gridview
Columns.aspx 作者:朱祁林 出处:http://zhuqil.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
可拖动列、可排序、可改变宽度的
GridView
在网站中使用
GridView
控件时,建立一个可拖动,可排序和可改变宽度的
GridView
控件,可以使程充变得列加人性化,运行本实例,可以实现拖曳鼠标改变列的宽度,动态显示、隐藏和编辑列等功能。
GridView
动态显示列
ASP.NET
GridView
动态显示列,
JavaScript
实现无刷新动态显示列
gridview
固定列宽.doc
gridview
的列宽是根据列里面的值的多少自动更改大小的!此文可以固定
gridview
列宽来达到想要的效果!
gridview
控件中的日期使用
日期控件的使用,可以去掉日期后面没用的00:00:00
C#
111,106
社区成员
642,562
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章