功能:

  • 单击行弹出当前行详细页面
  • 双击行进入编辑状态(GridView/DataGrid内置 Edit)

    说明:

  • 单击事件(onclick)使用了 setTimeout 延迟,根据实际需要修改延迟时间
  • 常见处理行方式会选择在 RowDataBound/ItemDataBound 中处理,这里我选择 Page.Render 中处理,至少基于以下考虑
  • RowDataBound 仅仅在调用 DataBind 之后才会触发,回发通过 ViewState 创建空件不触发 假如需要更多的处理,你需要分开部分逻辑到 RowCreated 等事件中
  • 并且我们希望使用 ClientScript.GetPostBackEventReference 和 ClientScript.RegisterForEventValidation 方法 进行安全脚本的注册,而后者需要在页的 Render 阶段中才能处理
  • 关于“DataGrid中采取的辅助按钮支持回发”见ASP.NET DEMO8: 为 GridView 每行添加服务器事件
  • PS:未实现 Edit 对应的 Update/Cancel ,根据需要自行添加即可。 


    原始需求:既有单击又有双击的GridView是否存在(问了许多人都说不能,郁闷)

    可直接运行源码(单页 .aspx): 

    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid<%@ Page Language="C#" %>
    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
    <%@ Import Namespace="System.Data" %>
    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
    <%--http://community.csdn.net/Expert/TopicView3.asp?id=5767096--%>
    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid

    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
    <script runat="server">
    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid    
    protected void Page_Load(object sender, EventArgs e)


     效果:
    ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
    下载

    PS:未实现 Edit 对应的 Update/Cancel ,根据需要自行添加即可。

  • 相关文章: