先简述一下一下背景,最近有个项目中有一个页面是关于工作人员大致情况的展示页面,展示的信息放在一个gridview控件里面,控件里有一列为工作人员姓名,然后希望能达到点击姓名弹出一个框显示出此工作人员的所有详细信息的效果。

这里给出部分代码。首先是前台页面,关于 姓名字段 采用的是LinkButton控件,当然你还可以采用别的方式部分代码如下:

前台代码

 1 <asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenerateColumns="False"  BorderWidth="0px" OnRowCommand="GridView1_RowCommand" CellPadding="3" CellSpacing="1"  DataKeyNames="Autoid" PageSize="15" PagerStyle-HorizontalAlign="Left" OnRowDataBound="GridView1_RowDataBound" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging"
 2 onselectedindexchanged="GridView1_SelectedIndexChanged" >
 3     <RowStyle HorizontalAlign="center" />
 4          <Columns>
 5              <asp:TemplateField HeaderText="姓名">
 6                   <HeaderStyle  Wrap="False" Width="100px" HorizontalAlign="Center" Font-Bold="False" Font-Size="9pt"/>
 7                         <ItemTemplate>
 8                               <asp:LinkButton runat="server" ID="btnName" Text='<%# Eval("cXm") %>' CommandName="detail"></asp:LinkButton>
 9                         </ItemTemplate>
10              </asp:TemplateField>
11          </Columns>
12 </asp:GridView>

在后台,要考虑的有几点,关于GridView1_RowDataBound(),

GridView1_RowDataBound

1 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
2 {
3       if (e.Row.RowType == DataControlRowType.DataRow)
4       {
5              LinkButton Lbtn = (LinkButton)e.Row.FindControl("btnName");
6              Lbtn.CommandArgument = this.GridView1.Rows.Count.ToString();
7        }
8 }

以上代码中有CommandArgument这个属性,先介绍下这个属性,根据MSDN里面介绍CommandArgument是获取或设置与关联的CommandName属性一起传到Command事件处理程序的可选参数。CommandArgument属性通常只在设置CommandName属性时使用。

例如此例中前台的LinkButton设置属性CommandName="detail",在后台中,把GridView展示结果的行数赋给CommandArgument。

然后在GridView1_RowCommand()中可以知道点击的是第几行的LinkButton。

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{//通过CommandArgument属性传递参数GridViewRow objGVR = this.GridView1.Rows[Convert.ToInt32(e.CommandArgument.ToString())];// 得到行数int index = objGVR.RowIndex;// 得到dataKeyNameDataKey objDK = this.GridView1.DataKeys[index];if ((e.CommandName.ToLower() == "detail")){string js = "window.showModalDialog('WorkDetail.aspx?id=" + objDK["Autoid"].ToString() + "', 'newwin', 'status:no;help:no;dialogHeight:600px; dialogWidth:800px;');";ScriptManager.RegisterStartupScript(this.GridView1, this.GetType(), "showWorkerDetail", js, true);}
}

这样便可以得到想要的效果了。

关于GridView1_RowCommand()还涉及到两个知识点。

一个是JS的window.showModalDialog()用来创建一个显示HTML内容的模态对话框。其使用格式为:window.showModalDialog(sURL[,vArguments][sFeatures]),其中sURL用来指定对话框要显示的文档的URL;vArguments是可选参数,用来向对话框传递参数(传递的参数类型不限,包括数组等);sFeatures是可选参数,类型是字符串,用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
      然后另一个是ScriptManager.RegisterStartupScript(),他是向ScriptManager控件注册一个启动脚本块并将该脚本块添加到页面中。其使用形式有两种,一种为ScriptManager.RegisterStartupScript(Control control,Type type,String key ,String script,Boolean addScriptTags),据MSDN里介绍:control是正在注册该客户端脚本块的控件;type是该客户端脚本块的类型,通常使用typeof运算符(c#)或GetType运算符(VB)来指定该参数,以检索正在注册该脚本的控件的类型;key是该脚本块的唯一标识符;script是注册的脚本;addScriptTags是指如果用<script></script>括起脚本块则为true;否则为false.

以上所用的参考资料:

http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.linkbutton.commandargument.aspx

http://www.cnblogs.com/zhangyi85/archive/2009/09/03/1559594.html

http://msdn.microsoft.com/zh-cn/library/bb359558.aspx

转载于:https://www.cnblogs.com/huang1990/archive/2013/05/10/3071207.html

asp.net中关于点击页面一个控件,弹出框的制作相关推荐

  1. 纯js封装一个多功能弹出框

    不借助其它的css代码和图片资源,可直接调用. 原创内容,请勿转载. 注意,不要直接复制文章里的封装代码,因为编辑器的原因,无论怎么编辑,它还是给修改了代码.文末提供了封装代码的下载地址(无需积分) ...

  2. 原生html页面弹窗_javascript原生弹出框

    提到弹出框,首先想到的alert()了,其次想到的也还是alert(),其实在js中有三种弹出框,下面我们一一说明. 1.仅确定. 即:对话框界面上只有确定按钮.该功能可以使用alert()方法实现. ...

  3. IDEA 插件开发 一个只有一个输入框的弹出框

    文章目录 IDEA 插件开发 一个只有一个输入框的弹出框 1.显示效果 IDEA 插件开发 一个只有一个输入框的弹出框 package com.wretchant.fredis.gui.dialog; ...

  4. OA系统二十四:请假审批五:【点击“审批”后的审批弹出框】的后台逻辑;(审批结果提交的Dao层和Service层逻辑)

    本篇博客的主要内容是:[请假审批内嵌页面],[审批弹出框]的点击"确认提交"后,后台的逻辑:主要是Dao层和Service层这些后台逻辑:  说明: (1)目前来看,为了实现某个功 ...

  5. 微信小程序页面跳转、弹出框

    一.页面跳转 页面跳转是微信小程序中使用较为频繁并且很重要的功能之一,页面跳转一般是通过点击按钮或者文本区域后需要进行的操作. 页面跳转中需要注意的点很多,我在这就介绍一些我在写项目过程中所遇到的一些 ...

  6. Android:基础控件按键文本框输入框制作登录页面

    基础控件之Button,TextView,EditText,ImageView Button:按键 TextView:文本框 EditText:输入框 ImageView:图片 那我们新建一个工程研究 ...

  7. OpenLayers标记地图点及点击地图点显示自定义弹出框

    css代码(设置弹出框样式) /*设置弹出框样式*/.ol-popup {position: absolute;background-color: #eeeeee;-webkit-filter: dr ...

  8. ASP.NET中实现复用代码自定义用户控件UserControl的使用

    场景 ASP.NET中新建Web网站并部署到IIS上(详细图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107199 ...

  9. 组件开发之ASP.NET中集成资源文件的服务器端控件开发

    一个ASP.net中的控件,往往要使用到一些图片.CSS和脚本JS文件等等,如果要求用户把这些资源文件自己复制到网站目录中,往往让人感觉很麻烦很不专业.如果能够在控件中包含这些资源,能够自动引用,不单 ...

最新文章

  1. 010 并发的三个特性
  2. R语言ggplot2可视化自定义图例实战:添加自定义的图例、添加填充色的图例
  3. 上手机器学习,从搞懂这十大经典算法开始
  4. RequestAnimationFrame知多少?
  5. jzoj3085. 图的计数
  6. Linux shell ==运算符
  7. 域查看工具开源_SEO人员,如何为网站开源节流?
  8. 文本聊天室(TCP-中)
  9. 01:操作系统(centos,redhat):性能监控和网络命令
  10. 国际经管学院举办计量经济学术前沿研讨会
  11. php.h: No such file or directory
  12. css样式的百分比都相对于谁?
  13. vba两个集合的差集_Python中的集合是如何使用的?
  14. php命令行是什么,什么是命令行?
  15. 前端复习笔记(一)——HTML
  16. Java的8大排序的基本思想及实例解读
  17. 网络虚拟化之虚拟交换机技术Linux Bridge
  18. 2020年度中国雇主榜发布;全球发布商用5G移动宽带网络数量已达109个 | 美通企业日报...
  19. plsql窗口文件怎么找回_简单粗暴搞定网易云音乐限制!找回失去的灰色快乐
  20. SA387Gr22合金板采购标书

热门文章

  1. IT人士还是要善待自己
  2. Android开机启动流程初探
  3. Analog使用中的一些技巧和总结
  4. Pixysoft.Framework.Noebe.Socket 开发实录
  5. CSS书写技巧(转)
  6. laravel路由无法访问,报404,No query results for model [App\Models\...]
  7. centos7下安装gcc7
  8. BugkuCTF web基础$_GET
  9. JAVA String 相加编译器发生了什么?
  10. 快捷技巧之一键查自己电脑所有打开的端口的具体操作