打印

[asp.net教程] asp.net中datagrid控件应用技巧简述2

asp.net中datagrid控件应用技巧简述2

三.hyperlinkcolumn数据列以及buttoncolumn数据列的应用:
   
    上面我向大家介绍了boundcolumn数据列的应用,而其它的两种数据列:hyperlinkcolumn数据列以及buttoncolumn数据列的应用方式与之相差无几。
   
   
    hyperlinkcolumn数据列包含了datatextfield属性以及datanavigateurlfield属性等,前者可以用于指定要显示的文本内容,而后者则用于指定超链接。同时hyperlinkcolumn数据列还包含了一个可用于指定文本显示格式的datanavigateurlformatstring属性。
   
    像hyperlinkcolumn数据列那样buttoncolumn数据列也提供了datatextfield属性以及datatextformatstring属性。同时它还提供了一个commandname属性,该属性能指定按钮被点击时服务器端的响应动作。而此时datagrid控件的onitemcommand属性必须指向一个相应的方法,该方法在按钮被点击时会自动被调用。datagrid控件中的一行可以包含多个buttoncolumn数据列,每个数据列中的按钮消息响应函数都是onitemcommand属性所对应的方法,而不同的按钮是根据其commandname属性来区分函数所应执行的不同部分的。buttoncolumn数据列还提供了一个buttontype属性以指定按钮的外观,该属性包括两种可取值:linkbutton(默认)和pushbutton。
   
    下面我们在原来解决方案的基础上再添加一个新的web应用程序项目,并在其中运用datagrid控件的boundcolumn数据列、hyperlinkcolumn数据列以及buttoncolumn数据列。下面是本项目的主要文件以及其代码后置文件的内容:
   
    webform1.aspx:
   
  <%@ page language="c#" codebehind="webform1.aspx.cs" autoeventwireup="false" inherits="datagridtemplates2.webform1" %>
  <!doctype html public "-//w3c//dtd html 4.0 transitional//en" >
  <html>
  <head>
  <title>webform1</title>
  <meta name="generator" content="microsoft visual studio 7.0">
  <meta name="code_language" content="c#">
  <meta name="vs_defaultclientscript" content="javascript">

  <meta name="vs_targetschema" content="http://schemas.microsoft.com/intellisense/ie5">
  </head>
  <body ms_positioning="flowlayout">
  <form id="form1" method="post" runat="server">
  <asp:datagrid id="mydatagrid" runat="server" headerstyle-font-bold="true" cellpadding="4" borderwidth="1px" autogeneratecolumns="false" gridlines="horizontal" font-names="verdana,arial,sans-serif" font-size="12px" borderstyle="solid">
  <alternatingitemstyle backcolor="#efefef"></alternatingitemstyle>
  <itemstyle font-size="x-small"></itemstyle>
  <headerstyle font-bold="true" forecolor="white" backcolor="teal"></headerstyle>
  <columns>
  <asp:boundcolumn datafield="customerid" headertext="id"></asp:boundcolumn>
  <asp:hyperlinkcolumn datanavigateurlfield="url" datatextfield="companyname" headertext="comapny name"></asp:hyperlinkcolumn>
  <asp:buttoncolumn text="get details" buttontype="pushbutton" commandname="getdetails"></asp:buttoncolumn>
  </columns>
  </asp:datagrid>
  </form>
  </body>
  </html>
   
  webform1.aspx.cs:
  using system;
  using system.collections;
  using system.componentmodel;
  using system.data;
  using system.data.sqlclient;
  using system.drawing;
  using system.web;
  using system.web.sessionstate;
  using system.web.ui;
  using system.web.ui.webcontrols;
  using system.web.ui.htmlcontrols;
   
  namespace datagridtemplates2
  {
  /// <summary>
  /// webform1 的摘要说明。
  /// </summary>
  public class webform1 : system.web.ui.page
  {
  protected system.web.ui.webcontrols.datagrid mydatagrid;
   
  private void page_load(object sender, system.eventargs e)
  {
  // 在此处放置用户代码以初始化页面
  if( !page.ispostback )
  binddata();
  }
   
  private void binddata()
  {
  sqlconnection con = new sqlconnection( "server=localhost;integrated security=true;database=northwind" );
  sqlcommand cmd = new sqlcommand( "select *, 'http://www.' + customerid + '.com' as url from customers", con );
  try
  {
  con.open();
  mydatagrid.datasource = cmd.executereader();
  mydatagrid.databind();
  con.close();
  }
  catch( exception ) {}
  if( con != null && con.state == connectionstate.open )
  con.close();
  }
   
  #region web form designer generated code
  override protected void oninit(eventargs e)
  {
  //
  // codegen:该调用是 asp.net web 窗体设计器所必需的。
  //
  initializecomponent();
  base.oninit(e);
  }
   
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void initializecomponent()
  {
  this.mydatagrid.itemcommand += new system.web.ui.webcontrols.datagridcommandeventhandler(this.mydatagrid_itemcommand);
  this.load += new system.eventhandler(this.page_load);
  }
  #endregion
   
  private void mydatagrid_itemcommand(object source, system.web.ui.webcontrols.datagridcommandeventargs e)
  {
  if( e.commandname == "getdetails" )
  response.redirect( "webform2.aspx?id=" + e.item.cells[0].text );
  }
  }
  }
   
    项目创建完毕,在浏览器中运行的效果如图2所示:
   
  图2 datagrid控件中运用hyperlinkcolumn以及buttoncolumn数据列显示数据的效果。

TOP

返回顶部
AYBlue

Processed in 0.055039 second(s), 7 queries.

当前时区 GMT+8, 现在时间是 2009-1-10 11:40 京ICP备06054220号

清除 Cookies - 联系我们 - 163K.com - Archiver - WAP