关于datagrid的几点简单应用,功能包括radio的单选,checkbox的多选,鼠标移动到行上颜色变深,链接传递多参数等功能。这里radio和checkbox都使用的是HTML控件。
        有关checkbox的几个功能:全部选种、取消选种、没选中操作的检测等,这几个均使用js脚本实现。
    
        运行效果图: 
            datagrid单选多选 

        testdatagrid.aspx页面代码: 
  1datagrid单选多选datagrid单选多选<%datagrid单选多选@ Page language="c#" Codebehind="testdatagrid.aspx.cs" AutoEventWireup="false" Inherits="localhost.fenpage.testdatagrid" %>
  2datagrid单选多选<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
  3datagrid单选多选<HTML>
  4datagrid单选多选    <HEAD>
  5datagrid单选多选        <title></title>
  6datagrid单选多选        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  7datagrid单选多选        <meta name="CODE_LANGUAGE" Content="C#">
  8datagrid单选多选        <meta name="vs_defaultClientScript" content="JavaScript">
  9datagrid单选多选        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 10datagrid单选多选datagrid单选多选        <script language="javascript">datagrid单选多选
 11datagrid单选多选        //全部选中
 12datagrid单选多选        function QuanXuan_Click()
 13datagrid单选多选datagrid单选多选        datagrid单选多选{
 14datagrid单选多选datagrid单选多选            if (document.Form1.checkboxname.length)datagrid单选多选{
 15datagrid单选多选datagrid单选多选                for (var i=0;i<document.Form1.checkboxname.length;i++)datagrid单选多选{
 16datagrid单选多选                    document.Form1.checkboxname[i].checked = true;
 17datagrid单选多选                }

 18datagrid单选多选datagrid单选多选            }
elsedatagrid单选多选{
 19datagrid单选多选                document.Form1.checkboxname.checked = true;
 20datagrid单选多选            }

 21datagrid单选多选        }

 22datagrid单选多选        
 23datagrid单选多选        //取消选中
 24datagrid单选多选        function QuXiao_Click()
 25datagrid单选多选datagrid单选多选        datagrid单选多选{
 26datagrid单选多选datagrid单选多选            if (document.Form1.checkboxname.length)datagrid单选多选{
 27datagrid单选多选datagrid单选多选                for (var i=0;i<document.Form1.checkboxname.length;i++)datagrid单选多选{
 28datagrid单选多选                    document.Form1.checkboxname[i].checked = false;
 29datagrid单选多选                }

 30datagrid单选多选datagrid单选多选            }
elsedatagrid单选多选{
 31datagrid单选多选                document.Form1.checkboxname.checked = false;
 32datagrid单选多选            }

 33datagrid单选多选        }

 34datagrid单选多选        
 35datagrid单选多选        ///////////////判断没有选中的返回false
 36datagrid单选多选        function slcNo_click()
 37datagrid单选多选datagrid单选多选        datagrid单选多选{
 38datagrid单选多选datagrid单选多选            if (document.Form1.checkboxname.length)datagrid单选多选{
 39datagrid单选多选datagrid单选多选                for (var i=0;i<document.Form1.checkboxname.length;i++)datagrid单选多选{
 40datagrid单选多选                    if(document.Form1.checkboxname[i].checked)
 41datagrid单选多选datagrid单选多选                    datagrid单选多选{
 42datagrid单选多选                        return true;
 43datagrid单选多选                    }

 44datagrid单选多选                }

 45datagrid单选多选datagrid单选多选            }
elsedatagrid单选多选{
 46datagrid单选多选                if(document.Form1.checkboxname.checked)
 47datagrid单选多选datagrid单选多选                datagrid单选多选{
 48datagrid单选多选                    return true;
 49datagrid单选多选                }

 50datagrid单选多选            }

 51datagrid单选多选            alert("请选择后再操作!");
 52datagrid单选多选            return false;
 53datagrid单选多选        }

 54datagrid单选多选        
 55datagrid单选多选        //////////////////////////////////////改变行的颜色
 56datagrid单选多选        if (!objbeforeItem)
 57datagrid单选多选datagrid单选多选        datagrid单选多选{
 58datagrid单选多选            var objbeforeItem=null;
 59datagrid单选多选            var objbeforeItembackgroundColor=null;
 60datagrid单选多选        }

 61datagrid单选多选        function ItemOver(obj)
 62datagrid单选多选datagrid单选多选        datagrid单选多选{
 63datagrid单选多选            objbeforeItembackgroundColor=obj.style.backgroundColor;
 64datagrid单选多选            obj.style.backgroundColor="#B9D1F3";                                        
 65datagrid单选多选            objbeforeItem=obj;
 66datagrid单选多选        }

 67datagrid单选多选        
 68datagrid单选多选        function ItemOut(obj)
 69datagrid单选多选datagrid单选多选        datagrid单选多选{            
 70datagrid单选多选            if(objbeforeItem)
 71datagrid单选多选datagrid单选多选            datagrid单选多选{
 72datagrid单选多选                objbeforeItem.style.backgroundColor=objbeforeItembackgroundColor;
 73datagrid单选多选            }
    
 74datagrid单选多选        }

 75datagrid单选多选        
</script>
 76datagrid单选多选    </HEAD>
 77datagrid单选多选    <body MS_POSITIONING="GridLayout">
 78datagrid单选多选        <form id="Form1" method="post" runat="server">
 79datagrid单选多选            <table>
 80datagrid单选多选                <tr>
 81datagrid单选多选                    <td><FONT face="宋体"><asp:datagrid id="MyDataGrid" runat="server" Width="550px" AllowPaging="True" AutoGenerateColumns="False"
 82datagrid单选多选                                OnPageIndexChanged="MyDataGrid_Page" PageSize="10" CellPadding="2" HorizontalAlign="Left" BorderColor="Gray"
 83datagrid单选多选                                Font-Size="14px" Font-Names="新宋体">
 84datagrid单选多选                                <AlternatingItemStyle BackColor="#F2F2F2"></AlternatingItemStyle>
 85datagrid单选多选                                <ItemStyle Wrap="False" HorizontalAlign="Left" Height="22px" VerticalAlign="Middle"></ItemStyle>
 86datagrid单选多选                                <HeaderStyle Wrap="False" Height="25px" BackColor="#DEE6F6"></HeaderStyle>
 87datagrid单选多选                                <Columns>
 88datagrid单选多选                                    <asp:BoundColumn Visible="False" DataField="id" SortExpression="id" HeaderText="id"></asp:BoundColumn>
 89datagrid单选多选                                    <asp:TemplateColumn>
 90datagrid单选多选                                        <HeaderTemplate>
 91datagrid单选多选                                            选择
 92datagrid单选多选                                        </HeaderTemplate>
 93datagrid单选多选                                        <ItemTemplate>
 94datagrid单选多选                                            <input type=radio name="RadioName" value='<%# DataBinder.Eval(Container.DataItem, "id")%>'/>
 95datagrid单选多选                                        </ItemTemplate>
 96datagrid单选多选                                    </asp:TemplateColumn>
 97datagrid单选多选                                    <asp:TemplateColumn>
 98datagrid单选多选                                        <HeaderTemplate>
 99datagrid单选多选                                            选择
100datagrid单选多选                                        </HeaderTemplate>
101datagrid单选多选                                        <ItemTemplate>
102datagrid单选多选                                            <INPUT type="checkbox" name="checkboxname" value='<%# DataBinder.Eval(Container.DataItem, "id")%>'>
103datagrid单选多选                                        </ItemTemplate>
104datagrid单选多选                                    </asp:TemplateColumn>
105datagrid单选多选                                    <asp:TemplateColumn>
106datagrid单选多选                                        <HeaderTemplate>
107datagrid单选多选                                            模板列
108datagrid单选多选                                        </HeaderTemplate>
109datagrid单选多选                                        <ItemTemplate>
110datagrid单选多选                                            <asp:Label ID="lblId" Runat="server" Text=''>
111datagrid单选多选                                            </asp:Label>
112datagrid单选多选datagrid单选多选                                            <href="abc.aspx?id=<%#DataBinder.Eval(Container.DataItem,  "id") %>&name=<%datagrid单选多选#DataBinder.Eval(Container.DataItem,  "name"%>" target="_blank">连接</a>
113datagrid单选多选                                        </ItemTemplate>
114datagrid单选多选                                    </asp:TemplateColumn>
115datagrid单选多选                                    <asp:HyperLinkColumn DataNavigateUrlField="id" DataNavigateUrlFormatString="aa.aspx?id={0}" DataTextField="name"
116datagrid单选多选                                        SortExpression="name" HeaderText="姓名" Target="_blank">
117datagrid单选多选                                    </asp:HyperLinkColumn>
118datagrid单选多选                                    <asp:BoundColumn DataField="card" SortExpression="card" HeaderText="身份证号" DataFormatString="{0:yyyy-MM-dd hh:mm:ss}"></asp:BoundColumn>
119datagrid单选多选                                    <asp:BoundColumn DataField="price" SortExpression="price" HeaderText="价格"></asp:BoundColumn>
120datagrid单选多选                                    <asp:BoundColumn DataField="shijian" SortExpression="shijian" HeaderText="shijian" DataFormatString="{0:yyyy年MM月dd日}"></asp:BoundColumn>
121datagrid单选多选                                </Columns>
122datagrid单选多选                                <PagerStyle Mode="NumericPages"></PagerStyle>
123datagrid单选多选                            </asp:datagrid></FONT></td>
124datagrid单选多选                </tr>
125datagrid单选多选                <tr>
126datagrid单选多选                    <td>
127datagrid单选多选                        <asp:Button id="Button1" runat="server" Text="radio得到选择的行"></asp:Button>
128datagrid单选多选                        <INPUT type="button" value="全部选中" onclick="QuanXuan_Click()">
129datagrid单选多选                        <INPUT type="button" value="取消选中" onclick="QuXiao_Click()">
130datagrid单选多选                        <asp:Button id="Button2" runat="server" Text="checkbox得到选择的行"></asp:Button>
131datagrid单选多选                    </td>
132datagrid单选多选                </tr>
133datagrid单选多选            </table>
134datagrid单选多选        </form>
135datagrid单选多选    </body>
136datagrid单选多选</HTML>
137datagrid单选多选

        testdatagrid.aspx.cs页面代码:
  1datagrid单选多选using System;
  2datagrid单选多选using System.Collections;
  3datagrid单选多选using System.ComponentModel;
  4datagrid单选多选using System.Data;
  5datagrid单选多选using System.Data.SqlClient;
  6datagrid单选多选using System.Drawing;
  7datagrid单选多选using System.Web;
  8datagrid单选多选using System.Web.SessionState;
  9datagrid单选多选using System.Web.UI;
 10datagrid单选多选using System.Web.UI.WebControls;
 11datagrid单选多选using System.Web.UI.HtmlControls;
 12datagrid单选多选using System.Configuration;
 13datagrid单选多选
 14datagrid单选多选namespace localhost.fenpage
 15datagrid单选多选datagrid单选多选datagrid单选多选{
 16datagrid单选多选datagrid单选多选    /**//// <summary>
 17datagrid单选多选    /// testdgRadio 的摘要说明。
 18datagrid单选多选    /// </summary>

 19datagrid单选多选    public class testdatagrid : System.Web.UI.Page
 20datagrid单选多选datagrid单选多选    datagrid单选多选{
 21datagrid单选多选        protected System.Web.UI.WebControls.RadioButton RadioButton1;
 22datagrid单选多选        protected System.Web.UI.WebControls.Button Button1;
 23datagrid单选多选        protected System.Web.UI.WebControls.Button Button2;
 24datagrid单选多选        protected System.Web.UI.WebControls.DataGrid MyDataGrid;
 25datagrid单选多选    
 26datagrid单选多选        private void Page_Load(object sender, System.EventArgs e)
 27datagrid单选多选datagrid单选多选        datagrid单选多选{            
 28datagrid单选多选            if (!IsPostBack)
 29datagrid单选多选datagrid单选多选            datagrid单选多选{
 30datagrid单选多选                BindGrid();
 31datagrid单选多选            }

 32datagrid单选多选
 33datagrid单选多选            Button2.Attributes.Add("OnClick","return slcNo_click();");
 34datagrid单选多选        }

 35datagrid单选多选
 36datagrid单选多选        public void MyDataGrid_Page(object sender, DataGridPageChangedEventArgs e)
 37datagrid单选多选datagrid单选多选        datagrid单选多选{
 38datagrid单选多选            MyDataGrid.CurrentPageIndex = e.NewPageIndex;
 39datagrid单选多选            BindGrid();
 40datagrid单选多选        }

 41datagrid单选多选
 42datagrid单选多选        private void BindGrid()
 43datagrid单选多选datagrid单选多选        datagrid单选多选{
 44datagrid单选多选            string strSql="";
 45datagrid单选多选            DataSet ds  = new DataSet();
 46datagrid单选多选            
 47datagrid单选多选            strSql="Select * from testDg";
 48datagrid单选多选            SqlConnection conn = new  SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);  
 49datagrid单选多选            if (conn.State.ToString() == "Closed")
 50datagrid单选多选datagrid单选多选            datagrid单选多选{
 51datagrid单选多选                conn.Open();
 52datagrid单选多选            }

 53datagrid单选多选            
 54datagrid单选多选            SqlDataAdapter Da  = new SqlDataAdapter(strSql, conn);
 55datagrid单选多选            Da.Fill(ds, "testdg");
 56datagrid单选多选            MyDataGrid.DataSource = ds.Tables["testdg"].DefaultView;
 57datagrid单选多选            MyDataGrid.DataBind();
 58datagrid单选多选            
 59datagrid单选多选            Da.Dispose();
 60datagrid单选多选            if(conn.State.ToString()=="Open")
 61datagrid单选多选datagrid单选多选            datagrid单选多选{
 62datagrid单选多选                conn.Close();
 63datagrid单选多选            }

 64datagrid单选多选            conn.Dispose();
 65datagrid单选多选        }

 66datagrid单选多选
 67datagrid单选多选        private void MyDataGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
 68datagrid单选多选datagrid单选多选        datagrid单选多选{
 69datagrid单选多选datagrid单选多选            //配合前台脚本实现鼠标移动到每行上变颜色#region    //配合前台脚本实现鼠标移动到每行上变颜色
 70datagrid单选多选            if(e.Item.ItemIndex>=0)
 71datagrid单选多选datagrid单选多选            datagrid单选多选{
 72datagrid单选多选datagrid单选多选                e.Item.Attributes.Add("onmouseover","ItemOver(this)");/**///////在每行上增加脚本处理 onmouseover
 73datagrid单选多选datagrid单选多选                e.Item.Attributes.Add("onmouseout","ItemOut(this)");/**///////在每行上增加脚本处理 onmouseout
 74datagrid单选多选            }

 75datagrid单选多选            #endregion

 76datagrid单选多选        }

 77datagrid单选多选
 78datagrid单选多选datagrid单选多选        Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
 79datagrid单选多选        override protected void OnInit(EventArgs e)
 80datagrid单选多选datagrid单选多选        datagrid单选多选{
 81datagrid单选多选            //
 82datagrid单选多选            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
 83datagrid单选多选            //
 84datagrid单选多选            InitializeComponent();
 85datagrid单选多选            base.OnInit(e);
 86datagrid单选多选        }

 87datagrid单选多选        
 88datagrid单选多选datagrid单选多选        /**//// <summary>
 89datagrid单选多选        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
 90datagrid单选多选        /// 此方法的内容。
 91datagrid单选多选        /// </summary>

 92datagrid单选多选        private void InitializeComponent()
 93datagrid单选多选datagrid单选多选        datagrid单选多选{    
 94datagrid单选多选            this.MyDataGrid.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.MyDataGrid_ItemCreated);
 95datagrid单选多选            this.Button1.Click += new System.EventHandler(this.Button1_Click);
 96datagrid单选多选            this.Button2.Click += new System.EventHandler(this.Button2_Click);
 97datagrid单选多选            this.Load += new System.EventHandler(this.Page_Load);
 98datagrid单选多选
 99datagrid单选多选        }

100datagrid单选多选        #endregion

101datagrid单选多选
102datagrid单选多选        private void Button1_Click(object sender, System.EventArgs e)
103datagrid单选多选datagrid单选多选        datagrid单选多选{
104datagrid单选多选            Page.Response.Write(Page.Request.Form.Get("RadioName"));
105datagrid单选多选        }

106datagrid单选多选
107datagrid单选多选        private void Button2_Click(object sender, System.EventArgs e)
108datagrid单选多选datagrid单选多选        datagrid单选多选{
109datagrid单选多选            string str="";
110datagrid单选多选            string []ckb=null;
111datagrid单选多选
112datagrid单选多选            str=Page.Request.Form.Get("checkboxname");
113datagrid单选多选datagrid单选多选            ckb=str.Split(new char[]datagrid单选多选{','});
114datagrid单选多选
115datagrid单选多选            Page.Response.Write("直接在页面中得到的值为:"+str+"<br>");
116datagrid单选多选
117datagrid单选多选            Page.Response.Write("处理后存放在数组中,如下:<br>");
118datagrid单选多选            for(int i=0;i<ckb.Length;i++)
119datagrid单选多选datagrid单选多选            datagrid单选多选{
120datagrid单选多选                Page.Response.Write("ckb["+i+"]的值为:"+ckb[i]+"<br>");
121datagrid单选多选            }

122datagrid单选多选        }

123datagrid单选多选    }

124datagrid单选多选}

125datagrid单选多选

        生成数据库表用到的sql语句:
datagrid单选多选CREATE TABLE [dbo].[testDg] (
datagrid单选多选    
[id] [decimal](180IDENTITY (11NOT NULL ,
datagrid单选多选    
[name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
datagrid单选多选    
[card] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
datagrid单选多选    
[price] [numeric](182NULL ,
datagrid单选多选    
[shijian] [datetime] NULL 
datagrid单选多选
ON [PRIMARY]
datagrid单选多选
GO
datagrid单选多选
datagrid单选多选
ALTER TABLE [dbo].[testDg] ADD 
datagrid单选多选    
CONSTRAINT [DF_testDg_shijian] DEFAULT (getdate()) FOR [shijian],
datagrid单选多选    
CONSTRAINT [PK_testDg] PRIMARY KEY  CLUSTERED 
datagrid单选多选    (
datagrid单选多选        
[id]
datagrid单选多选    )  
ON [PRIMARY] 
datagrid单选多选
GO

转载于:https://www.cnblogs.com/hzuIT/articles/472795.html

相关文章: