仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 583|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计asp.net 2.0中gridview里嵌套dropdownl...

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)asp.net在asp.net2.0中,在一个gridview里,能够嵌套进一个dropdownlist,这是非常简单的事变,而这里讲的是,
在每一个dropdownlist里,都绑定的是分歧的内容,好比在northwind数据库中,能够用GRIDVIEW显现出
每一个category种别,同时每行的category种别里能够已dropdonwlist下拉框的情势,列出该分类下的一切
产物.上面先容完成的办法
起首是页脸部分的代码
<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundFieldDataField="CategoryID"HeaderText="CategoryID"/>
<asp:BoundFieldDataField="CategoryName"HeaderText="CategoryName"/>
<asp:TemplateFieldHeaderText="Products">
<ItemTemplate>
<asp:DropDownListID="DropDownList1"runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在codebehind部分,
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!Page.IsPostBack)
{
//ThisisbecauseTable[1]containsCategories
GridView1.DataSource=GetDataSet().Tables[1];
GridView1.DataBind();
}

}
privateDataSetGetDataSet()
{
stringquery=@"SELECTp.CategoryID,p.ProductID,p.ProductNameFROMProductsp
SELECTc.CategoryID,c.CategoryNameFROMCategoriesc";
stringconnectionString="Server=localhost;Database=Northwind;userid=sa;password=123456";
SqlConnectionmyConnection=newSqlConnection(connectionString);
SqlDataAdapterad=newSqlDataAdapter(query,myConnection);
DataSetds=newDataSet();
ad.Fill(ds);
returnds;
}
在下面的代码中,起首我们经由过程典范的dataset前往,绑定到gridview上往,注重这里sql语句里有两句,第一句是前往产物,第二句是前往一切的种别category,而在绑定gridview时,我们用
GridView1.DataSource=GetDataSet().Tables[1];,将第一个table内外的category纪录绑定到gridview里往,接上去,我们要处置模版列中的dropdownlist了,这个能够在row_databound事务中写进代码,以下
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
{
DataTablemyTable=newDataTable();
DataColumnproductIDColumn=newDataColumn("ProductID");
DataColumnproductNameColumn=newDataColumn("ProductName");
myTable.Columns.Add(productIDColumn);
myTable.Columns.Add(productNameColumn);
DataSetds=newDataSet();
ds=GetDataSet();
intcategoryID=0;
stringexpression=String.Empty;
if(e.Row.RowType==DataControlRowType.DataRow)
{
categoryID=Int32.Parse(e.Row.Cells[0].Text);
expression="CategoryID="+categoryID;
DropDownListddl=(DropDownList)e.Row.FindControl("DropDownList1");
DataRow[]rows=ds.Tables[0].Select(expression);
foreach(DataRowrowinrows)
{
DataRownewRow=myTable.NewRow();
newRow["ProductID"]=row["ProductID"];
newRow["ProductName"]=row["ProductName"];
myTable.Rows.Add(newRow);
}
ddl.DataSource=myTable;
ddl.DataTextField="ProductName";
ddl.DataValueField="ProductID";
ddl.DataBind();
}
}
这里的道理大抵以下:
起首,我们创建了一个datatable,包括了productid,productname列,然后将其与gridview绑定,以后再用
categoryID=Int32.Parse(e.Row.Cells[0].Text);
expression="CategoryID="+categoryID;
机关一个选择表达式,这里指定为categoryID,然后经由过程
DropDownListddl=(DropDownList)e.Row.FindControl("DropDownList1");
DataRow[]rows=ds.Tables[0].Select(expression);
,找出切合其种别即是某一categoryID的一切产物,这里机关出datarow汇合了,最初,利用轮回
,将某种别下的产物全体增加到datatable中往,最初将datatable和dropdownlist绑定,就完成功效了
可怜的程序员,还是逃不出移植的命运!
沙发
发表于 2015-1-19 19:31:14 | 只看该作者
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
只想知道 该用户已被删除
板凳
发表于 2015-1-25 12:44:54 | 只看该作者
主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。
admin 该用户已被删除
地板
发表于 2015-2-2 22:07:28 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-8 12:00:34 | 只看该作者
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
活着的死人 该用户已被删除
6#
发表于 2015-2-25 11:18:26 | 只看该作者
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
飘灵儿 该用户已被删除
7#
发表于 2015-3-7 20:30:03 | 只看该作者
ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。
蒙在股里 该用户已被删除
8#
发表于 2015-3-15 14:05:19 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
兰色精灵 该用户已被删除
9#
发表于 2015-3-22 01:42:47 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 05:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表