婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET2.0中用Gridview控件操作數據的代碼

ASP.NET2.0中用Gridview控件操作數據的代碼

熱門標簽:上海楊浦怎么申請申請400電話 海外地圖標注門市標 地圖標注多個行程 山西防封卡電銷卡套餐 云南外呼電銷機器人系統 陜西人工外呼系統哪家好 廈門商鋪地圖標注 浙江外呼系統怎么安裝 銅川小型外呼系統運營商
其中,在數據控件方面,增加了不少控件,其中的Gridview控件功能十分強大。在本文中,將探討Gridview控件中的一些功能特性和用法,如果各位讀者對Gridview控件不大了解,可以通過《使用ASP.NET 2.0中的Gridview控件》一文,來對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集合中,各字段的類型和名稱即可。

  2、一次性更新所有的Gridview記錄

  我們經常會遇到這樣的情況,在Gridview中列出的所有記錄中,有時要同時修改多條記錄,并且將其保存到數據庫中去。那么在Gridview中應該如何實現呢?在Gridview中,有兩種實現的方法,下面分別進行介紹:

  先來看下第一種方法,本方法是使用sqldatasource來更新所有記錄,但這個方法比較慢,因為每更新一條記錄都要建立數據連接并執行updatecommand,會影響性能。其主要代碼如下:

復制代碼 代碼如下:

script runat="server">
void Button1_Click(object sender, EventArgs e)
{
 for (int i = 0; i Gridview1.Rows.Count; i++)
 {
  GridviewRow row = Gridview1.Rows[i];
  SqlDataSource1.UpdateParameters[0].DefaultValue = ((TextBox)row.Cells[0].FindControl("TextBox2")).Text;
  SqlDataSource1.UpdateParameters[1].DefaultValue = ((TextBox)row.Cells[1].FindControl("TextBox3")).Text;
  SqlDataSource1.UpdateParameters[2].DefaultValue = Gridview1.DataKeys[i].Value.ToString();
  SqlDataSource1.Update();
 }
}
/script>
html xmlns="http://www.w3.org/1999/xhtml" >
head id="Head1" runat="server">
title>Untitled Page/title>
/head>
body>
 form id="form1" runat="server">
 div>
 asp:Gridview ID="Gridview1" Runat="server" DataSourceID="SqlDataSource1" DataKeyNames="CustomerID" AutoGenerateColumns="False">
 Columns>
 asp:TemplateField SortExpression="CustomerID" HeaderText="CustomerID">
 ItemTemplate>
  asp:TextBox Runat="server" Text='%# Bind("CustomerID") %>' ID="TextBox1">/asp:TextBox>
 /ItemTemplate>
 /asp:TemplateField>
  asp:TemplateField SortExpression="CompanyName" HeaderText="CompanyName">
  ItemTemplate>
   asp:TextBox Runat="server" Text='%# Bind("CompanyName") %>' ID="TextBox2">/asp:TextBox>
  /ItemTemplate>
 /asp:TemplateField>
 asp:TemplateField SortExpression="ContactName" HeaderText="ContactTitle">
  ItemTemplate>
   asp:TextBox Runat="server" Text='%# Bind("ContactTitle") %>' ID="TextBox3">/asp:TextBox>
  /ItemTemplate>
 /asp:TemplateField>
 /Columns>
 /asp:Gridview>
asp:SqlDataSource ID="SqlDataSource1" Runat="server"
SelectCommand="SELECT [CustomerID], [CompanyName], [ContactName], [ContactTitle] FROM [Customers]"
UpdateCommand="UPDATE [Customers] SET [CompanyName] = @CompanyName, [ContactTitle] = @ContactTitle WHERE [CustomerID] = @CustomerID"
ConnectionString="server=localhost;uid=sa;password=xxxx;database=northwind">
UpdateParameters>
asp:Parameter Type="String" Name="CompanyName">/asp:Parameter>
asp:Parameter Type="String" Name="ContactTitle">/asp:Parameter>
asp:Parameter Type="String" Name="CustomerID">/asp:Parameter>
/UpdateParameters>
/asp:SqlDataSource>
asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
/div>
/form>
/body>
/html>

  在上面的代碼中,我們必須首先指定updateparameters參數集合,也就是指出要更新的是哪些字段,它們的類型是什么。之后并指出sqldatasource的updatecommand語句。而在更新按鈕button1的CLICK事件中,將以遍歷的形式,使用for循環,對Gridview中的每一行進行檢查,將每個更新了的文本框的內容放到sqldatasouce的updateparameters參數中去,最后調用sqldatasource的update方法,完成更新。

  方法2使用的是首先遍歷Gridview中的每一行,并且使用SQL語句,將要更新的內容連接起來,然后最后才使用command.ExecuteNonQuery()進行更新,效率高了,主要代碼如下:

復制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
 SqlCommand command = new SqlCommand("SELECT [CustomerID], [CompanyName], [ContactName], [ContactTitle] FROM [Customers]", con);
 con.Open();
 Gridview1.DataSource = command.ExecuteReader();
 Gridview1.DataBind();
 con.Close();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
 StringBuilder query = new StringBuilder();
 for (int i = 0; i Gridview1.Rows.Count; i++)
 {
  GridviewRow row = Gridview1.Rows[i];
  string value1 = ((TextBox)row.Cells[0].FindControl("TextBox2")).Text.Replace("'", "''");
  string value2 = ((TextBox)row.Cells[1].FindControl("TextBox3")).Text.Replace("'", "''");
  string value3 = Gridview1.DataKeys[i].Value.ToString();
  query.Append("UPDATE [Customers] SET [CompanyName] = '").Append(value1).Append("' , [ContactTitle] = '")
.Append(value2).Append("' WHERE [CustomerID] = '").Append(value3).Append("';\n");
 }
 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
 SqlCommand command = new SqlCommand(query.ToString(), con);
 con.Open();
 command.ExecuteNonQuery();
 con.Close();
}
}

  其中要特別注意一點的是,在vs.net 2005 beta 2開始,如果你在web.config中使用了數據庫連接字符串的配置,那么應該按如下的方法去寫:
復制代碼 代碼如下:

connectionStrings>
add name="NorthwindConnectionString" connectionString="Data Source=LIAO;Initial Catalog=Northwind;User ID=sa;Password=xxxx" providerName="System.Data.SqlClient"/>
/connectionStrings>

  然后在程序中如下進行讀?。?
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
您可能感興趣的文章:
  • ASP.NET 2.0/3.5中直接操作Gridview控件插入新記錄
  • asp.net GridView控件鼠標移動某行改變背景顏色(方法一)
  • asp.net GridView控件中模板列CheckBox全選、反選、取消
  • asp.net GridView控件中實現全選的解決方案
  • ASP.NET GridView控件在列上格式化時間及DataFormatString使用
  • asp.net的GridView控件使用方法大全
  • asp.net中GridView控件遍歷的小例子
  • Asp.net的GridView控件實現單元格可編輯方便用戶使用
  • ASP.NET4 GridView的四種排序樣式詳解
  • ASP.NET使用GridView導出Excel實現方法
  • asp.net gridview分頁:第一頁 下一頁 1 2 3 4 上一頁 最末頁
  • ASP.NET中為GridView添加刪除提示框的方法
  • asp.net中GridView數據鼠標移入顯示提示信息
  • 如何用jQuery實現ASP.NET GridView折疊伸展效果
  • ASP.NET GridView中加入RadioButton不能單選的解決方案
  • 靈活掌握asp.net中gridview控件的多種使用方法(上)
  • 靈活掌握asp.net中gridview控件的多種使用方法(下)

標簽:西雙版納 孝感 自貢 朔州 萊蕪 許昌 常州 信陽

巨人網絡通訊聲明:本文標題《ASP.NET2.0中用Gridview控件操作數據的代碼》,本文關鍵詞  ASP.NET2.0,中用,Gridview,控件,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET2.0中用Gridview控件操作數據的代碼》相關的同類信息!
  • 本頁收集關于ASP.NET2.0中用Gridview控件操作數據的代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    六月丁香综合在线视频| 成人短视频下载| 国产精品综合一区二区三区| 91成人在线精品| 久久久三级国产网站| 一区二区三区免费观看| 国产乱码精品一区二区三| 一本高清dvd不卡在线观看| 精品日韩欧美一区二区| 亚洲综合清纯丝袜自拍| 国产经典欧美精品| 91精品国产手机| 亚洲精品自拍动漫在线| 国产成人午夜精品影院观看视频| 日韩欧美国产1| 亚洲图片欧美色图| 91丨九色丨黑人外教| 中文字幕精品一区二区三区精品 | 欧美福利一区二区| 亚洲欧美另类在线| 99久久久无码国产精品| 亚洲国产精品二十页| 国产精品一区二区果冻传媒| 欧美tk—视频vk| 奇米色一区二区三区四区| 欧洲亚洲国产日韩| 亚洲综合精品久久| 色偷偷成人一区二区三区91| 亚洲免费观看视频| 欧洲一区在线电影| 亚洲国产乱码最新视频| 欧美视频精品在线观看| 亚洲一区二区三区四区的 | 亚洲一区免费视频| 日本韩国欧美国产| 一区二区三区精密机械公司| 色哦色哦哦色天天综合| 《视频一区视频二区| 99久精品国产| 亚洲制服丝袜av| 欧美性大战久久久久久久| 亚洲国产日日夜夜| 8v天堂国产在线一区二区| 蜜臀av一区二区在线免费观看| 91精品国产综合久久蜜臀| 日韩av网站免费在线| 久久综合久久综合亚洲| 成人性生交大片免费看在线播放 | 亚洲欧美日韩久久| 91理论电影在线观看| 亚洲国产成人高清精品| 日韩午夜激情av| 精品综合久久久久久8888| 中文字幕精品—区二区四季| 色哟哟国产精品| 日韩黄色免费电影| 国产亚洲欧美激情| 91免费版pro下载短视频| 亚洲国产精品久久不卡毛片| 欧美电视剧免费全集观看| 丁香亚洲综合激情啪啪综合| 夜夜嗨av一区二区三区网页| 欧美成人欧美edvon| www.激情成人| 日韩电影在线观看网站| 日本一区二区三区四区在线视频| 日本丶国产丶欧美色综合| 精一区二区三区| 亚洲精品欧美综合四区| 日韩欧美在线观看一区二区三区| 成人性生交大片免费看中文| 午夜在线成人av| 国产精品国产精品国产专区不蜜| 欧美日韩在线精品一区二区三区激情| 精品一区二区综合| 亚洲精品大片www| 久久久久国色av免费看影院| 欧美裸体bbwbbwbbw| 成人美女视频在线观看18| 天堂蜜桃91精品| 亚洲欧美另类图片小说| 久久亚区不卡日本| 精品污污网站免费看| 国产 日韩 欧美大片| 美女网站视频久久| 亚洲一区二区免费视频| 国产精品久久久久久久久免费桃花 | 日韩欧美国产系列| 91视频国产观看| 国产成人a级片| 日产精品久久久久久久性色| 亚洲欧洲成人精品av97| 久久免费精品国产久精品久久久久| 在线观看亚洲成人| 99精品视频中文字幕| 国产精品影音先锋| 久久精品国产一区二区三| 午夜视黄欧洲亚洲| 亚洲精品精品亚洲| 亚洲欧洲另类国产综合| 国产精品天美传媒沈樵| 久久久蜜臀国产一区二区| 欧美videossexotv100| 日韩一级完整毛片| 91麻豆精品国产| 4438x亚洲最大成人网| 91久久精品网| 欧美性一区二区| 91官网在线免费观看| aaa亚洲精品| 99久久er热在这里只有精品66| 国产成人在线色| 国产精品中文字幕一区二区三区| 黄网站免费久久| 国产精品综合在线视频| 国产露脸91国语对白| 国产精品 欧美精品| 成人午夜精品在线| 北岛玲一区二区三区四区| 95精品视频在线| 欧美日韩中文字幕一区| 91精品国产综合久久福利软件| 9191国产精品| 日韩欧美aaaaaa| 国产亚洲精品福利| 国产精品狼人久久影院观看方式| 中文字幕制服丝袜成人av | 欧美一区二区三区视频| 日韩你懂的电影在线观看| 精品99久久久久久| 国产精品色婷婷| 亚洲一区二三区| 日韩av在线播放中文字幕| 国模一区二区三区白浆| 风间由美一区二区av101| 91首页免费视频| 这里只有精品视频在线观看| 久久久精品国产免费观看同学| 国产精品美女久久久久久久久| 一区二区成人在线| 久久国产欧美日韩精品| 成人免费视频视频| 欧美日韩免费在线视频| 久久久91精品国产一区二区三区| 亚洲视频 欧洲视频| 青青青伊人色综合久久| 成人免费视频国产在线观看| 欧美精品在欧美一区二区少妇| 久久九九99视频| 亚洲aaa精品| 高清国产午夜精品久久久久久| 在线观看一区不卡| 久久久精品人体av艺术| 亚洲成av人片一区二区三区| 韩国三级中文字幕hd久久精品| 色偷偷成人一区二区三区91 | 亚洲第一在线综合网站| 久久99久久精品| 欧美三级在线看| 国产欧美中文在线| 亚洲v精品v日韩v欧美v专区| 成人亚洲精品久久久久软件| 欧美一级午夜免费电影| 亚洲精品中文字幕乱码三区| 国产制服丝袜一区| 欧美日本不卡视频| 中文字幕综合网| 大桥未久av一区二区三区中文| 日韩一区二区三免费高清| 国产精品超碰97尤物18| 国模大尺度一区二区三区| 7777精品伊人久久久大香线蕉的 | 日韩视频在线你懂得| 亚洲黄色小视频| caoporn国产精品| 国产偷v国产偷v亚洲高清| 五月综合激情网| 欧洲精品一区二区三区在线观看| 国产精品网站在线| 国产精品一二三| 精品国产乱码久久久久久牛牛| 视频一区二区三区中文字幕| 日本乱人伦一区| 亚洲免费电影在线| 成人高清在线视频| 国产三级精品三级在线专区| 国产一区 二区 三区一级| 亚洲精品在线三区| 国产乱码字幕精品高清av| 精品国产一区二区三区忘忧草| 蜜臀va亚洲va欧美va天堂 | 精品电影一区二区| 久久国产精品72免费观看| 欧美一区二区三区在线| 日本不卡一区二区三区| 337p亚洲精品色噜噜狠狠| 日本成人中文字幕| 精品国产制服丝袜高跟| 国产精品资源在线看| 国产精品久久久久久久久免费桃花|