- 浏览: 877335 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
chienchia:
请问下,第4步,vpn做了什么使数据包发送到真实网卡,而不会再 ...
如何使用Android系统自带的VPN服务框架 -
fangyafenqidai:
我只要选第二个就可以呢,怒需要选第一个。之后不会有啥问题。正常 ...
Android Studio 超级简单的打包生成apk -
michaelye1988:
不错,很棒!
getcachedir和getexternalcachedir的区别 -
whlei01:
文章棒棒哒
常用的AS3代码 -
whlei01:
很不错 之前打开及时600M的内存 ,现在打开只有300兆了 ...
flash builder内存不够的解决办法
引用
有的时候我们需要
(1)在编辑的时候用下拉框选择,并且默认为数据库的内容
(2)使用下拉框过滤数据
(3)使用css统一定制DataGrid
下面给出代码:
数据结构:
表dep:depid(标识主键),depname(学院名字)
表stu:stuid(标识主键),stuname(学生名字),studepid(学院id=表dep.depid)
前台:
<%@ Page language="c#" Codebehind="WebForm28.aspx.cs" AutoEventWireup="false" Inherits="csdn.WebForm28" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>WebForm28</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <link href="css.css" rel="stylesheet" type="text/css"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body> <form id="Form1" method="post" runat="server"> <asp:DropDownList id="DropDownList1" runat="server" AutoPostBack="True"></asp:DropDownList> <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" CellSpacing="1" BorderWidth="0px" CellPadding="5" CssClass="border" OnEditCommand="edit" OnCancelCommand="cancel" OnUpdateCommand="update" DataKeyField="stuid"> <ItemStyle CssClass="item"></ItemStyle> <HeaderStyle CssClass="header"></HeaderStyle> <Columns> <asp:TemplateColumn HeaderText="姓名"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem,"stuname") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox id="name" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"stuname") %>' Width="88px"> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="学院"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem,"depname") %> </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="dep" Runat="server"></asp:DropDownList> </EditItemTemplate> </asp:TemplateColumn> <asp:EditCommandColumn ButtonType="PushButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn> </Columns> </asp:DataGrid> </form> </body> </HTML>
后台:
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 csdn { /// <summary> /// WebForm28 的摘要说明。 /// </summary> public class WebForm28 : System.Web.UI.Page { protected System.Web.UI.WebControls.DropDownList DropDownList1; protected System.Web.UI.WebControls.DataGrid DataGrid1; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!IsPostBack) { SetBind(); SetBind2(); } } protected void SetBind() { SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); SqlDataAdapter da=new SqlDataAdapter("select * from stu,dep where stu.studepid=dep.depid",conn); DataSet ds=new DataSet(); da.Fill(ds,"table1"); this.DataGrid1.DataSource=ds.Tables["table1"]; this.DataGrid1.DataBind(); } protected void SetBind2() { SqlConnection conn2=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); SqlDataAdapter da2=new SqlDataAdapter("select * from dep",conn2); DataSet ds2=new DataSet(); da2.Fill(ds2,"table1"); this.DropDownList1.DataSource=ds2.Tables["table1"]; this.DropDownList1.DataTextField="depname"; this.DropDownList1.DataValueField="depid"; this.DropDownList1.DataBind(); this.DropDownList1.Items.Insert(0,new ListItem("请选择","")); } protected void SetBind3() { string s=this.DropDownList1.SelectedValue; SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); SqlCommand comm=new SqlCommand(); comm.Connection=conn; if(s!="") { comm.CommandText="select * from stu,dep where stu.studepid=dep.depid and depid=@depid"; SqlParameter parm1=new SqlParameter("@depid",SqlDbType.Int); parm1.Value=s; comm.Parameters.Add(parm1); } else comm.CommandText="select * from stu,dep where stu.studepid=dep.depid"; SqlDataAdapter da=new SqlDataAdapter(); da.SelectCommand=comm; DataSet ds=new DataSet(); da.Fill(ds,"table1"); this.DataGrid1.DataSource=ds.Tables["table1"]; this.DataGrid1.DataBind(); } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound); this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedIndexChanged); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); SqlDataAdapter da=new SqlDataAdapter("select * from dep",conn); DataSet ds=new DataSet(); da.Fill(ds,"table1"); if(e.Item.ItemType==ListItemType.EditItem) { DropDownList ddl=(DropDownList)e.Item.FindControl("dep"); ddl.DataSource=ds.Tables["table1"]; ddl.DataTextField="depname"; ddl.DataValueField="depid"; ddl.DataBind(); ddl.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"depid"))).Selected=true; //选择数据库内的作为默认 } } protected void edit(object sender,DataGridCommandEventArgs e) { this.DataGrid1.EditItemIndex=e.Item.ItemIndex; if(this.DropDownList1.SelectedValue=="") SetBind(); else SetBind3(); } protected void cancel(object sender,DataGridCommandEventArgs e) { this.DataGrid1.EditItemIndex=-1; if(this.DropDownList1.SelectedValue=="") SetBind(); else SetBind3(); } protected void update(object sender,DataGridCommandEventArgs e) { if(e.Item.ItemType==ListItemType.EditItem)//只有在编辑按下以后才能提交 { SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); SqlCommand comm=new SqlCommand("update stu set stuname=@name,studepid=@depid where stuid=@id",conn); SqlParameter parm1=new SqlParameter("@name",SqlDbType.NVarChar,50); parm1.Value=((TextBox)e.Item.FindControl("name")).Text; SqlParameter parm2=new SqlParameter("@depid",SqlDbType.Int); parm2.Value=((DropDownList)e.Item.FindControl("dep")).SelectedValue; SqlParameter parm3=new SqlParameter("@id",SqlDbType.Int); parm3.Value=this.DataGrid1.DataKeys[e.Item.ItemIndex]; comm.Parameters.Add(parm1); comm.Parameters.Add(parm2); comm.Parameters.Add(parm3); conn.Open(); comm.ExecuteNonQuery(); conn.Close(); this.DataGrid1.EditItemIndex=-1; if(this.DropDownList1.SelectedValue=="") SetBind(); else SetBind3();//如果选择过滤则使用SetBind3() } } private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e) { SetBind3(); } } } css: .border { background-color: #00496C; } .header { font-family: "宋体", sans-serif; font-size: 10pt; font-weight: bold; color: #FFFFFF; background-color: #0080C0; text-align: center; } .item { font-family: "宋体", sans-serif; font-size: 9pt; font-weight: normal; color: #0080C0; background-color: #FFFFFF; text-align: center; }
代码比较简单,下面简单说明一下:
(1)SetBind()是基本的绑定;SetBind2()是绑定外面的那个DropDownList;SetBind3()是在下拉框选择了以后过滤后的DataGrid的绑定
(2)这里使用Css来实现表格边框是利用CellSpacing,所以这个数值就是边框的宽度,在表格边框的css中使用background-color来描述边框的颜色。
发表评论
-
Request、Request.Form和Request.QueryString的区别
2012-08-13 14:46 1304Request、Request.Form和Request.Q ... -
大型软件公司.net面试题!一定得看(附答案)
2010-01-14 14:23 1641引用 1、答案 a=a+b; b=a-b; a=a ... -
.net面试整试题及参考答案【转】
2010-01-14 14:01 2255引用 一、ADO 与ADO.NET两 ... -
最新的.Net面试题及答案
2010-01-14 13:52 4145引用 最新的.Net面试题及答案 1.a=10,b=15,在不 ... -
NET面试题集
2010-01-12 16:48 2314引用 NET面试题集2009-08-2 ... -
如何记住密码?
2010-01-11 17:00 1258封装一个类,里面两个方法,一个是写,一个是读,直接调用即可 ... -
怎样在GridView中的DropDownList选项改变的时候获取GridView中的DataKeys.Value的二种方法:
2010-01-10 19:41 3418【1】 <asp:GridView ID="G ... -
Gridview中用删除一行的问题
2010-01-10 19:39 1579html代码如下: <asp:templatefie ... -
通过Visual studio 2005 中的web.sitemap实现OUTLOOK风格的系统菜单
2010-01-10 18:26 2011Visual Studio 开发工具提供的一些功能让开发变得更 ... -
ListView控件(一)--增,删,改,查
2010-01-10 18:13 3401ASP.NET3.5中包含了新的数据绑定控件--ListVie ... -
Repeater分页
2010-01-10 18:06 2450private void Page_Load(ob ... -
单击头模板中的checkbox,实现datalist中所有chebox的全选和取消
2010-01-10 17:48 1813使用C#和javascript都可以实现,第二种更好一些, ... -
GridView 如何获取当前行的索引值
2010-01-10 16:10 7129引用 在用GridView控件时,我们经常会碰到获取当前行的索 ... -
[ASP] asp日期函数大全
2010-01-09 16:18 27461. Now 传回系统的日期及 ... -
ASP.net随机数应用实例
2010-01-09 16:15 1030大家可能都用过Chinaren的校友录,不久前它的留言簿上加 ... -
3种方式遍历Repeater中的CheckBox全选
2010-01-09 16:14 1729方式1 引用 1 foreach (Control c in ... -
[ASP.NET2.0]Repeater C# 分页用法
2010-01-09 16:03 2816二、Web.config配置 1 <ap ... -
(摘抄)为什么设置了DropDownList的AutoPostBack="True"还是不能触发SelectedIndexChanged事件?
2010-01-09 16:01 4227曾经遇到过这个问题,后来在LoveCherry的博客中找到了更 ...
相关推荐
jeasyui-datagrid-datagrid 开发参考
详细介绍DataGrid控件的使用,可对数据可的信息以列表的形式显示,介绍详细,附有图片
1.easyui使用datagrid定制生成一个table,1.数据绑定2.DataGrid的增改删功能3.DataGrid的分页实现4.DataGrid的样式设计先上一张截图,让你大概知道自己需要的功能是否在这张图里有所实现。
c# DATAGRID使用方法c# DATAGRID使用方法c# DATAGRID使用方法c# DATAGRID使用方法
WPF之DataGrid使用示例WPF之DataGrid使用示例WPF之DataGrid使用示例
easyui的datagrid中editor和combogrid的结合使用,datagrid中编辑项是下拉表的实现方式
可以使用 DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid 控件可以在设计时快速进行配置,只需少量代码或无需代码。当在设计时设置了DataGrid 控件的 DataSource 属性后,就会用...
DataGrid使用心得DataGrid使用心得DataGrid使用心得DataGrid使用心得DataGrid使用心得DataGrid使用心得
利用微软的MVVM开发模式,方便高效的使用DataGrid控件实现功能。
本列子不使用ToolKit(有3.5和4.0的限制),添加一个类,重写DataGrid。可以在DataGrid上下左右绑定一个DataGrid,类似Footer属性。示例可直接运行,简单易懂。 (思路:两个DataGrid(mainDG,bottomDG),bottomDG...
DataGrid和GridView使用区别例子. 对数据的增删改查、分页等使用方法,分别作出了例子。
DataTable,DataView和DataGrid中一些容易混淆的概念
vb中datagrid控件的详细使用方法,拿出来给大家看看!!!!是学习datagrid控件的好助手
System.Windows.Controls.DataGrid DataGrid = dataGrid1; string file = "C:Users\\Administrator\\Desktop\\qb"; Export(DataGrid, file); } public static void Export(System.Windows.Controls.DataGrid...
WPF中的DataGrid合并单元格,模板列内嵌套DataGrid,非真正合并
DataGrid的ItemCreated和ItemDataBound以及合计平均行
DataGrid中嵌套DataGrid,修改后也适用DataGrid中嵌套DataList,DataList中嵌套DataList
DataGrid自定义列标题 DataGrid自定义列标题 DataGrid自定义列标题 DataGrid自定义列标题 DataGrid自定义列标题
一个dojo的datagrid的使用方面注意以及提醒的例子,包含datagrid的分页算法demo
DataTable,DataView和DataGrid用法教程:DataTable,DataView和DataGrid中一些容易混淆的概念,详细讲解了它的区别和用法。