gridview中linkbutton引起的事件

yangxueke 2010-04-05 02:39:32
GridView的模板列中:
<asp:LinkButton ID="Ap" OnClientClick="return outTicket('OK');" runat="server" Text="点击" CommandName="Select" CommandArgument="3"></asp:LinkButton>

function outTicket(str){
if(confirm(str) ==true){
return true;
}
else
return false;
}

后台还有两个gridview事件 (SelectedIndexChanged和RowCommand事件)

当执行完js事件后 是否以上两个事件都执行,并且 RowCommand 执行在前?

OnClientClick="return outTicket('OK');" 这个 return 有何用处?
...全文
301 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-04-05
  • 打赏
  • 举报
回复
return confirm返回的值
true继续执行
false结束
“Select”
选择当前记录。引发 SelectedIndexChanging 和 SelectedIndexChanged 事件。

polarissky 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 koukoujiayi 的回复:]

OnClientClick="return outTicket('OK');" 这个 return 有何用处?
=========================
return 是接受confirm返回的值,

true
则会继续执行RowCommand事件和SelectedIndexChanged事件

false
则不会执行!!

RowCommand 执行在前Selec……
[/Quote]
学习
xhddd111 2010-04-05
  • 打赏
  • 举报
回复
RowCommand是gridview内有按钮点击时发生的事件,可以判断commandname来确定是哪个按钮被点击,commandargument可以绑定个参数,什么按钮执行的参数
jimu8130 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhujiazhi 的回复:]
引用 3 楼 yangxueke 的回复:

如果return true; 会触发SelectedIndexChanged事件 是吗?


是啥都不会的

顺便说一下
confirm(str)这个返回的结果就是true or false
不用if(confirm(str) ==true)这样来判断的,可直接
if(confirm(str))
{
}
[/Quote]
这位哥们后半部分说得对
一般直接写成OnClientClick="return confirm('OK');" 即可,没必要还费劲整个函数
jimu8130 2010-04-05
  • 打赏
  • 举报
回复
服务器端判断是否需要触发select事件是根据你上次选择和提交时候选择的gridview row index来判断的。
rowcommand后台事件是根据你给linkbutton赋值的commandname值来选择执行代码,
koukoujiayi 2010-04-05
  • 打赏
  • 举报
回复
OnClientClick="return outTicket('OK');" 这个 return 有何用处?
=========================
return 是接受confirm返回的值,

true
则会继续执行RowCommand事件和SelectedIndexChanged事件

false
则不会执行!!

RowCommand 执行在前SelectedIndexChanged在后
jimu8130 2010-04-05
  • 打赏
  • 举报
回复
如果return true; 会触发SelectedIndexChanged事件 是吗?
------------------------------------
return true和select那个事件没有必然联系,一个js用于前台,一个是后台事件。return true只是表明可以postback,即提交给服务器,至于是否需要触发select事件是由服务器端来判断
zhujiazhi 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yangxueke 的回复:]

如果return true; 会触发SelectedIndexChanged事件 是吗?
[/Quote]

是啥都不会的

顺便说一下
confirm(str)这个返回的结果就是true or false
不用if(confirm(str) ==true)这样来判断的,可直接
if(confirm(str))
{
}
inmyownsky1 2010-04-05
  • 打赏
  • 举报
回复
后台还有两个gridview事件 (SelectedIndexChanged和RowCommand事件)

你说的这两个事件和你写的js是没有联系的,js代码的代用是当你点击linkButton后

而SelectIndexChanged是指选择的索引改变时才会触发该事件,而RowCommand是行命令事件,具体的用法你可以查下msdn,职员你说的return,同意楼上的说法
yangxueke 2010-04-05
  • 打赏
  • 举报
回复
如果return true; 会触发SelectedIndexChanged事件 是吗?
jimu8130 2010-04-05
  • 打赏
  • 举报
回复
OnClientClick="return outTicket('OK');" 这个 return 有何用处?

return是为了当你选择取消或者否的时候在客户端这边向上返回false,从而阻止页面postback,不提交到后台
假如你没换行点击,那么select那个事件不会触发,否则rowcommand会触发。
itrefer 2010-04-05
  • 打赏
  • 举报
回复
后台还有两个gridview事件 (SelectedIndexChanged和RowCommand事件)

SelectedIndexChanged和linkbutton没关系 RowCommand好像你也没用到

return 接收outTicket的返回值 确认是否点击了确认按钮
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 GridView1_RowCreated(object sender, GridViewRowEventArgs 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 GridView1_RowCreated(object sender, GridViewRowEventArgs 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.GridView1ShowHideColumns.Visible = true; this.GridView1ShowHideColumns.Items.Add(new ListItem("-Show Column-", "-1")); foreach (int i in hiddenColumnIndexes) this.GridView1ShowHideColumns.Items.Add( new ListItem(columnNames[i], i.ToString())); } else { this.GridView1ShowHideColumns.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/ShowHideGridviewColumns.aspx 作者:朱祁林 出处:http://zhuqil.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧