选择显示字体大小

asp.net2.0中用gridview控件操作数据(1)

     在asp.net 2.0中,加入了许多新的功能和控件,相比asp.net 1.0/1.1,在各方面都有了很大的提高。其中,在数据控件方面,增加了不少控件,其中的gridview控件功能十分强大。
  
    1、使用gridview插入新记录
  
    在gridview控件中,可以实现插入新记录的操作(见《使用asp.net 2.0中的gridview控件》)一文,但如果想实现在gridview中,实现在gridview控件的最后一行,提供一个空白行给用户输入要输入的记录,那无疑是很方便的。下面将介绍其实现方法。
  
    首先,我们打算在让用户进行选择,当用户需要新增一记录时,便点击新增按钮,之后在gridview的最后一行里,显示一个空白行,让用户按字段进行输入,如下图所示:
    
  
     
   当用户决定不输入新空白记录时,可以按"cancel"按钮返回,该空白行消失。要实现这样的效果,我们可以充分利用gridview的footer的模版功能进行自定义,因为有3列,所以,在每一列的footer模版中,定义如下:
  
  <asp:gridview id="gridview1" runat="server" datasourceid="sqldatasource1" datakeynames="customerid" autogeneratecolumns="false" showfooter="true">
  <columns>
   <asp:templatefield>
    <itemtemplate>
     <asp:label id="customeridlabel" runat="server"><%# eval("customerid") %></asp:label>
    </itemtemplate>
    <footertemplate>
     <asp:textbox id="customeridtextbox" runat="server"></asp:textbox>
    </footertemplate>
   </asp:templatefield>
  
   <asp:templatefield>
    <itemtemplate>
     <asp:label id="companynamelabel" runat="server"><%# eval("companyname") %></asp:label>
    </itemtemplate>
    <footertemplate>
     <asp:textbox id="companynametextbox" runat="server"></asp:textbox>
    </footertemplate>
   </asp:templatefield>
  
   <asp:templatefield>
    <footertemplate>
     <asp:dropdownlist id="contacttitledropdownlist" runat="server" datasourceid="sqldatasource2" datatextfield="contacttitle" datavaluefield="contacttitle">
     </asp:dropdownlist>
     <asp:sqldatasource id="sqldatasource2" runat="server" selectcommand="select distinct [contacttitle] from [customers]"
  connectionstring="server=localhost;uid=sa;password=xxx;database=northwind">
     </asp:sqldatasource>
  
     <asp:button id="button1" runat="server" text="add" onclick="button1_click" />
     <asp:button id="cancelbutton1" runat="server" text="cancel" onclick="cancelbutton1_click" />
    </footertemplate>
  
   <itemtemplate>
    <asp:dropdownlist id="contacttitledropdown" selectedvalue=’<%# bind("contacttitle") %>’ runat="server" datasourceid="sqldatasource3" datatextfield="contacttitle" datavaluefield="contacttitle" ></asp:dropdownlist>
    <asp:sqldatasource id="sqldatasource3" runat="server" selectcommand="select distinct [contacttitle] from [customers]"
  connectionstring="server=localhost;uid=sa;password=xxxx;database=northwind" enablecaching="true">
    </asp:sqldatasource>
   </itemtemplate>
   </asp:templatefield>
  </columns>
  </asp:gridview>
  
    以上为gridview的代码,可以看到,在第一,二列的<foottemplate>列中,分别提供了customerid和companyname两个文本框以供用户输入,在第三列的<footertemplate>列中,以dropdownlistbox的形式来显示contracttitle.。其中,请注意第三列的footertemplate中的add和cancel两个按钮的,它们的事件代码如下
  
  <script runat="server">
  void cancelbutton1_click(object sender, eventargs e)
  {
   gridview1.showfooter = false;
  }
  void addbutton1_click(object sender, eventargs e)
  {
   gridview1.showfooter = true;
  }
  
   //点add按钮时,将新增的记录更新到数据库中去
  void button1_click(object sender, eventargs e)
  {
   textbox customerid = gridview1.footerrow.findcontrol("customeridtextbox") as textbox;
   textbox companyname = gridview1.footerrow.findcontrol("companynametextbox") as textbox;
   dropdownlist contacttitle = gridview1.footerrow.findcontrol("contacttitledropdownlist") as dropdownlist;
   sqldatasource1.insertparameters["customerid"].defaultvalue = customerid.text;
   sqldatasource1.insertparameters["companyname"].defaultvalue = companyname.text;  
   sqldatasource1.insertparameters["contacttitle"].defaultvalue=contacttitle.selectedvalue;
   sqldatasource1.insert();
  }
  </script>
  
    其中的cancel按钮的事件,用来取消显示gridview的footer模版,因此设置showfooter属性为false,而addbutton1按钮,是当用户决定新增记录时点选的,此时将设置showfooter属性为true,以显示各列的foottemplate,从而达到显示新的一个空白行的目的。
  
    而在更新代码button1_click事件中,将首先使用gridview1.footerrow.findcontrol的方法,将用户新增的各字段的值提取出来,然后分别赋值给sqldatasource的insertparameters集合(注意要一一对应),最后使用sqldatasource的insert方法,就可以成功向数据库增加一条新记录了。
  
    另外,为了在窗体加载时,显示数据库northwind中customers表的数据,需要设置sqldatsource1的属性,如下代码:
  
   <asp:sqldatasource id="sqldatasource1" runat="server"
  insertcommand="insert into [customers] ([customerid], [companyname], [contacttitle]) values (@customerid, @companyname, @contacttitle)"
  selectcommand="select top 5 [customerid], [companyname], [contacttitle] from [customers]"
  connectionstring="server=localhost;uid=sa;password=xxxxx;database=northwind">
  <insertparameters>
  <asp:parameter type="string" name="customerid"></asp:parameter>
  <asp:parameter type="string" name="companyname"></asp:parameter>
  <asp:parameter type="string" name="contacttitle"></asp:parameter>
  </insertparameters>
  </asp:sqldatasource>
  
    其中,必须设置insertcommand和selectcommand属性,设置数据提取和插入的语句,并且要设置好insertparameters集合中,各字段的类型和名称即可。
  
    


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons