??????? 關于datagrid的幾點簡單應用,功能包括radio的單選,checkbox的多選,鼠標移動到行上顏色變深,鏈接傳遞多參數等功能。這里radio和checkbox都使用的是HTML控件。
??????? 有關checkbox的幾個功能:全部選種、取消選種、沒選中操作的檢測等,這幾個均使用js腳本實現。
????
????????運行效果圖:?
???????????

?
??????? testdatagrid.aspx頁面代碼:?
??1
<%
@?Page?language="c#"?Codebehind="testdatagrid.aspx.cs"?AutoEventWireup="false"?Inherits="localhost.fenpage.testdatagrid"?%>
??2
<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.0?Transitional//EN"?>
??3
<HTML>
??4
????<HEAD>
??5
????????<title></title>
??6
????????<meta?name="GENERATOR"?Content="Microsoft?Visual?Studio?.NET?7.1">
??7
????????<meta?name="CODE_LANGUAGE"?Content="C#">
??8
????????<meta?name="vs_defaultClientScript"?content="JavaScript">
??9
????????<meta?name="vs_targetSchema"?content="http://schemas.microsoft.com/intellisense/ie5">
?10
????????<script?language="javascript">
?11
????????//全部選中
?12
????????function?QuanXuan_Click()
?13
????????
{
?14
????????????if?(document.Form1.checkboxname.length)
{
?15
????????????????for?(var?i=0;i<document.Form1.checkboxname.length;i++)
{
?16
????????????????????document.Form1.checkboxname[i].checked?=?true;
?17
????????????????}
?18
????????????}else
{
?19
????????????????document.Form1.checkboxname.checked?=?true;
?20
????????????}
?21
????????}
?22
????????
?23
????????//取消選中
?24
????????function?QuXiao_Click()
?25
????????
{
?26
????????????if?(document.Form1.checkboxname.length)
{
?27
????????????????for?(var?i=0;i<document.Form1.checkboxname.length;i++)
{
?28
????????????????????document.Form1.checkboxname[i].checked?=?false;
?29
????????????????}
?30
????????????}else
{
?31
????????????????document.Form1.checkboxname.checked?=?false;
?32
????????????}
?33
????????}
?34
????????
?35
????????///////////////判斷沒有選中的返回false
?36
????????function?slcNo_click()
?37
????????
{
?38
????????????if?(document.Form1.checkboxname.length)
{
?39
????????????????for?(var?i=0;i<document.Form1.checkboxname.length;i++)
{
?40
????????????????????if(document.Form1.checkboxname[i].checked)
?41
????????????????????
{
?42
????????????????????????return?true;
?43
????????????????????}
?44
????????????????}
?45
????????????}else
{
?46
????????????????if(document.Form1.checkboxname.checked)
?47
????????????????
{
?48
????????????????????return?true;
?49
????????????????}
?50
????????????}
?51
????????????alert("請選擇后再操作!");
?52
????????????return?false;
?53
????????}
?54
????????
?55
????????//////////////////////////////////////改變行的顏色
?56
????????if?(!objbeforeItem)
?57
????????
{
?58
????????????var?objbeforeItem=null;
?59
????????????var?objbeforeItembackgroundColor=null;
?60
????????}
?61
????????function?ItemOver(obj)
?62
????????
{
?63
????????????objbeforeItembackgroundColor=obj.style.backgroundColor;
?64
????????????obj.style.backgroundColor="#B9D1F3";????????????????????????????????????????
?65
????????????objbeforeItem=obj;
?66
????????}
?67
????????
?68
????????function?ItemOut(obj)
?69
????????
{????????????
?70
????????????if(objbeforeItem)
?71
????????????
{
?72
????????????????objbeforeItem.style.backgroundColor=objbeforeItembackgroundColor;
?73
????????????}????
?74
????????}
?75
????????</script>
?76
????</HEAD>
?77
????<body?MS_POSITIONING="GridLayout">
?78
????????<form?id="Form1"?method="post"?runat="server">
?79
????????????<table>
?80
????????????????<tr>
?81
????????????????????<td><FONT?face="宋體"><asp:datagrid?id="MyDataGrid"?runat="server"?Width="550px"?AllowPaging="True"?AutoGenerateColumns="False"
?82
????????????????????????????????OnPageIndexChanged="MyDataGrid_Page"?PageSize="10"?CellPadding="2"?HorizontalAlign="Left"?BorderColor="Gray"
?83
????????????????????????????????Font-Size="14px"?Font-Names="新宋體">
?84
????????????????????????????????<AlternatingItemStyle?BackColor="#F2F2F2"></AlternatingItemStyle>
?85
????????????????????????????????<ItemStyle?Wrap="False"?HorizontalAlign="Left"?Height="22px"?VerticalAlign="Middle"></ItemStyle>
?86
????????????????????????????????<HeaderStyle?Wrap="False"?Height="25px"?BackColor="#DEE6F6"></HeaderStyle>
?87
????????????????????????????????<Columns>
?88
????????????????????????????????????<asp:BoundColumn?Visible="False"?DataField="id"?SortExpression="id"?HeaderText="id"></asp:BoundColumn>
?89
????????????????????????????????????<asp:TemplateColumn>
?90
????????????????????????????????????????<HeaderTemplate>
?91
????????????????????????????????????????????選擇
?92
????????????????????????????????????????</HeaderTemplate>
?93
????????????????????????????????????????<ItemTemplate>
?94
????????????????????????????????????????????<input?type=radio?name="RadioName"?value='<%#?DataBinder.Eval(Container.DataItem,?"id")%>'/>
?95
????????????????????????????????????????</ItemTemplate>
?96
????????????????????????????????????</asp:TemplateColumn>
?97
????????????????????????????????????<asp:TemplateColumn>
?98
????????????????????????????????????????<HeaderTemplate>
?99
????????????????????????????????????????????選擇
100
????????????????????????????????????????</HeaderTemplate>
101
????????????????????????????????????????<ItemTemplate>
102
????????????????????????????????????????????<INPUT?type="checkbox"?name="checkboxname"?value='<%#?DataBinder.Eval(Container.DataItem,?"id")%>'>
103
????????????????????????????????????????</ItemTemplate>
104
????????????????????????????????????</asp:TemplateColumn>
105
????????????????????????????????????<asp:TemplateColumn>
106
????????????????????????????????????????<HeaderTemplate>
107
????????????????????????????????????????????模板列
108
????????????????????????????????????????</HeaderTemplate>
109
????????????????????????????????????????<ItemTemplate>
110
????????????????????????????????????????????<asp:Label?ID="lblId"?Runat="server"?Text=''>
111
????????????????????????????????????????????</asp:Label>
112
????????????????????????????????????????????<a?href="abc.aspx?id=<%#DataBinder.Eval(Container.DataItem,??"id")?%>&name=<%
#DataBinder.Eval(Container.DataItem,??"name")?%>"?target="_blank">連接</a>
113
????????????????????????????????????????</ItemTemplate>
114
????????????????????????????????????</asp:TemplateColumn>
115
????????????????????????????????????<asp:HyperLinkColumn?DataNavigateUrlField="id"?DataNavigateUrlFormatString="aa.aspx?id={0}"?DataTextField="name"
116
????????????????????????????????????????SortExpression="name"?HeaderText="姓名"?Target="_blank">
117
????????????????????????????????????</asp:HyperLinkColumn>
118
????????????????????????????????????<asp:BoundColumn?DataField="card"?SortExpression="card"?HeaderText="身份證號"?DataFormatString="{0:yyyy-MM-dd?hh:mm:ss}"></asp:BoundColumn>
119
????????????????????????????????????<asp:BoundColumn?DataField="price"?SortExpression="price"?HeaderText="價格"></asp:BoundColumn>
120
????????????????????????????????????<asp:BoundColumn?DataField="shijian"?SortExpression="shijian"?HeaderText="shijian"?DataFormatString="{0:yyyy年MM月dd日}"></asp:BoundColumn>
121
????????????????????????????????</Columns>
122
????????????????????????????????<PagerStyle?Mode="NumericPages"></PagerStyle>
123
????????????????????????????</asp:datagrid></FONT></td>
124
????????????????</tr>
125
????????????????<tr>
126
????????????????????<td>
127
????????????????????????<asp:Button?id="Button1"?runat="server"?Text="radio得到選擇的行"></asp:Button>
128
????????????????????????<INPUT?type="button"?value="全部選中"?onclick="QuanXuan_Click()">
129
????????????????????????<INPUT?type="button"?value="取消選中"?onclick="QuXiao_Click()">
130
????????????????????????<asp:Button?id="Button2"?runat="server"?Text="checkbox得到選擇的行"></asp:Button>
131
????????????????????</td>
132
????????????????</tr>
133
????????????</table>
134
????????</form>
135
????</body>
136
</HTML>
137
??????? testdatagrid.aspx.cs頁面代碼:
??1
using?System;
??2
using?System.Collections;
??3
using?System.ComponentModel;
??4
using?System.Data;
??5
using?System.Data.SqlClient;
??6
using?System.Drawing;
??7
using?System.Web;
??8
using?System.Web.SessionState;
??9
using?System.Web.UI;
?10
using?System.Web.UI.WebControls;
?11
using?System.Web.UI.HtmlControls;
?12
using?System.Configuration;
?13
?14
namespace?localhost.fenpage
?15

{
?16
????/**////?<summary>
?17
????///?testdgRadio?的摘要說明。
?18
????///?</summary>
?19
????public?class?testdatagrid?:?System.Web.UI.Page
?20
????
{
?21
????????protected?System.Web.UI.WebControls.RadioButton?RadioButton1;
?22
????????protected?System.Web.UI.WebControls.Button?Button1;
?23
????????protected?System.Web.UI.WebControls.Button?Button2;
?24
????????protected?System.Web.UI.WebControls.DataGrid?MyDataGrid;
?25
????
?26
????????private?void?Page_Load(object?sender,?System.EventArgs?e)
?27
????????
{????????????
?28
????????????if?(!IsPostBack)
?29
????????????
{
?30
????????????????BindGrid();
?31
????????????}
?32
?33
????????????Button2.Attributes.Add("OnClick","return?slcNo_click();");
?34
????????}
?35
?36
????????public?void?MyDataGrid_Page(object?sender,?DataGridPageChangedEventArgs?e)
?37
????????
{
?38
????????????MyDataGrid.CurrentPageIndex?=?e.NewPageIndex;
?39
????????????BindGrid();
?40
????????}
?41
?42
????????private?void?BindGrid()
?43
????????
{
?44
????????????string?strSql="";
?45
????????????DataSet?ds??=?new?DataSet();
?46
????????????
?47
????????????strSql="Select?*?from?testDg";
?48
????????????SqlConnection?conn?=?new??SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);??
?49
????????????if?(conn.State.ToString()?==?"Closed")
?50
????????????
{
?51
????????????????conn.Open();
?52
????????????}
?53
????????????
?54
????????????SqlDataAdapter?Da??=?new?SqlDataAdapter(strSql,?conn);
?55
????????????Da.Fill(ds,?"testdg");
?56
????????????MyDataGrid.DataSource?=?ds.Tables["testdg"].DefaultView;
?57
????????????MyDataGrid.DataBind();
?58
????????????
?59
????????????Da.Dispose();
?60
????????????if(conn.State.ToString()=="Open")
?61
????????????
{
?62
????????????????conn.Close();
?63
????????????}
?64
????????????conn.Dispose();
?65
????????}
?66
?67
????????private?void?MyDataGrid_ItemCreated(object?sender,?System.Web.UI.WebControls.DataGridItemEventArgs?e)
?68
????????
{
?69
????????????//配合前臺腳本實現鼠標移動到每行上變顏色#region????//配合前臺腳本實現鼠標移動到每行上變顏色
?70
????????????if(e.Item.ItemIndex>=0)
?71
????????????
{
?72
????????????????e.Item.Attributes.Add("onmouseover","ItemOver(this)");/**///////在每行上增加腳本處理?onmouseover
?73
????????????????e.Item.Attributes.Add("onmouseout","ItemOut(this)");/**///////在每行上增加腳本處理?onmouseout
?74
????????????}
?75
????????????#endregion
?76
????????}
?77
?78
????????Web?窗體設計器生成的代碼#region?Web?窗體設計器生成的代碼
?79
????????override?protected?void?OnInit(EventArgs?e)
?80
????????
{
?81
????????????//
?82
????????????//?CODEGEN:?該調用是?ASP.NET?Web?窗體設計器所必需的。
?83
????????????//
?84
????????????InitializeComponent();
?85
????????????base.OnInit(e);
?86
????????}
?87
????????
?88
????????/**////?<summary>
?89
????????///?設計器支持所需的方法?-?不要使用代碼編輯器修改
?90
????????///?此方法的內容。
?91
????????///?</summary>
?92
????????private?void?InitializeComponent()
?93
????????
{????
?94
????????????this.MyDataGrid.ItemCreated?+=?new?System.Web.UI.WebControls.DataGridItemEventHandler(this.MyDataGrid_ItemCreated);
?95
????????????this.Button1.Click?+=?new?System.EventHandler(this.Button1_Click);
?96
????????????this.Button2.Click?+=?new?System.EventHandler(this.Button2_Click);
?97
????????????this.Load?+=?new?System.EventHandler(this.Page_Load);
?98
?99
????????}
100
????????#endregion
101
102
????????private?void?Button1_Click(object?sender,?System.EventArgs?e)
103
????????
{
104
????????????Page.Response.Write(Page.Request.Form.Get("RadioName"));
105
????????}
106
107
????????private?void?Button2_Click(object?sender,?System.EventArgs?e)
108
????????
{
109
????????????string?str="";
110
????????????string?[]ckb=null;
111
112
????????????str=Page.Request.Form.Get("checkboxname");
113
????????????ckb=str.Split(new?char[]
{','});
114
115
????????????Page.Response.Write("直接在頁面中得到的值為:"+str+"<br>");
116
117
????????????Page.Response.Write("處理后存放在數組中,如下:<br>");
118
????????????for(int?i=0;i<ckb.Length;i++)
119
????????????
{
120
????????????????Page.Response.Write("ckb["+i+"]的值為:"+ckb[i]+"<br>");
121
????????????}
122
????????}
123
????}
124
}
125
??????? 生成數據庫表用到的sql語句:
CREATE?TABLE?[dbo].[testDg]?(
????[id]?[decimal](18,?0)?IDENTITY?(1,?1)?NOT?NULL?,
????[name]?[varchar]?(50)?COLLATE?Chinese_PRC_CI_AS?NULL?,
????[card]?[varchar]?(50)?COLLATE?Chinese_PRC_CI_AS?NULL?,
????[price]?[numeric](18,?2)?NULL?,
????[shijian]?[datetime]?NULL?
)?ON?[PRIMARY]
GO

ALTER?TABLE?[dbo].[testDg]?ADD?
????CONSTRAINT?[DF_testDg_shijian]?DEFAULT?(getdate())?FOR?[shijian],
????CONSTRAINT?[PK_testDg]?PRIMARY?KEY??CLUSTERED?
????(
????????[id]
????)??ON?[PRIMARY]?
GOTrackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=465393