zoukankan      html  css  js  c++  java
  • GridView里面的HyperLink和ButtonField操作总结

    HyperLink的操作前段时间已经研究的颇有心得了,但是ButtonField却一直没有解决,这个问题困扰了我多日,中间因为考试中段了一段时间,现在重新找出来发现问题还是没有解决,在查找了一些资料之后终于搞定了,其实挺简单的,这里面用到了一个小技巧,那就是使用TemplateField。

      HyperLink的应用只要是页面转向,中间要设置一些诸如ID啊、NAME啊之类的属性,用起来非常方便,其主要属性设置为:

    aspx Code
    <asp:HyperLinkField DataNavigateUrlFields="UserId,UserName" DataNavigateUrlFormatString="userdetail.aspx?UserId={0} &amp; UserName={1}" DataTextField="UserName" HeaderText="用户详细信息" Target="_blank" />

    看上去是不是非常强悍?用起来更强悍!

    ButtonField的属性主要的就一个CommandName,看起来很羸弱,用起来也是如此。看看它的典型应用的属性设置吧:

    aspx Code
    <asp:ButtonField ButtonType="Button" CommandName="Click1" Text="按钮点击事件1" />
    <asp:ButtonField ButtonType="Button" CommandName="Click2" Text="按钮点击事件2" />
    c# Code
    protected   void  GridView1_OnRowCommand( object  sender, GridViewCommandEventArgs e) 
    {
           if  (e.CommandName.ToString() ==("Click1"))
               Label1.Text = "you Click" + e.CommandName.ToString()+1111;
    
          else
              Label1.Text = "you Click" + e.CommandName.ToString() + 222; 
    
    }

    这个CommandNam就是为了判断选取的是哪一列的按钮。虽然代码和属性都很简单,但是ButtonField应用起来很多地方不方便,比如在AJAX架构中放在UpdatePanel种的时候,使用JavaScript就让人困扰。于是我们来介绍一下模板列TemplateField。

    很多ASP.NET 2.0程序设计高手在网上贴了很多怎么转换和使用模板列,这里就直接拿过来了:

    View Code
    /*
    1、点击GridView的快捷箭头,选‘编辑列’。
    2、加入一个ButtonFiled,在右边的属性框里设置HeadText(用以显示),定义一个CommandName(用以你点击以后触发的动作)
    3、点右下角的‘转化为模版列’,ok。
    4、右击GridView,‘编辑模版’--‘Column[..]--你之前定义的HeadText’,ItemTemplate里看见你的按钮了吗?点中,属性里有一项‘OnClientClick’,把“javascript:return confirm('真的要删除吗?');”粘贴进去。
    5、搞定你需要的功能了。
    6、如果你想点击按钮触发其他事件,可以在RowCommand事件里详细写。。。
    */
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "MyBtnClicked")//前面你定义的CommandName
        {
            Response.Write("kkk clicked");
        }
    }

    如果你使用了微软的数据源空间SqlDataSource,那么你还可以直接设置Button将要操作的数据列,而不用再去写代码,如下设置:

    1、在前面的步骤4中,你在itemTemplate里看见你的按钮右上角的小箭头了吧,verygood,点击‘编辑DataBings’。。。

    2、看见这一级别的绑定了吗?把 CommandArgument和你想操作的字段绑定吧。。。(右边下拉列表选择)

    3、ok,现在你可以类似下面方法调用

    ------------------

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgse)

    {

      if (e.CommandName == "MyBtnClicked")

      {

        Response.Write("you wanted " + e.CommandArgument.ToString());

      }

    }

    ------------------

    你无非就是想取到结果集中的cell里的内容,现在你想得到的内容绑定在CommandArgument里了,你就不用再什么index什么cell[].text了(复杂的cell你还要findcontrol,呵呵)

  • 相关阅读:
    如何通过命令行窗口查看sqlite数据库文件
    eclipse自动补全的设置
    文本装饰
    注释和特殊符号
    文本装饰
    网页背景
    通过ArcGIS Server admin 查看和删除已注册的 Web Adaptor
    通过 ArcGIS Server Manager 查看已安装的 Web Adaptor
    通过 ArcGIS Server Manager 验证 DataStore
    Windows上安装ArcGIS Enterprise——以 Windows Server 2012 R2上安装 ArcGIS 10.8为例
  • 原文地址:https://www.cnblogs.com/ToddLai/p/2755593.html
Copyright © 2011-2022 走看看