asp net基础知识Word下载.docx
《asp net基础知识Word下载.docx》由会员分享,可在线阅读,更多相关《asp net基础知识Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
DataValueField="
CategoryID"
AutoPostBack="
true"
DataSourceID="
DropDownList>
绑定:
结构相同的数据用控件绑定展示
实现绑定功能的控件有两类:
列表类型:
DropDownList/ListBox/CheckBoxList/RadioButton……..可以显示数据的都行
列表一次只能显示一条数据,绑定到表中字段时必须指定字段名称
GridView/DataList/…包含其他控件
如下:
GridView显示的数据如下所示:
其中进行了分页,数据的绑定,各个控件的显示等
PName
Price
Quantity
Dele
Chai
39
*
Chang
17
Guaraná
Fantá
stica
20
SasquatchAle
111
SteeleyeStout
1
2
3
功能的实现如下:
其中Eval()用于提取数据,Eval(“”)或Eval(“”,””)第一个参数指定字段,第二个是格式化字符串,用到了占位符{0};
只能放在<
%#%>
中,代表绑定到服务器端的代码
自定义显示列信息&
nbsp;
可以选中多个进行删除操作,删除时要进行询问;
br/>
删除选中行内容时必须得到这一行的ID,因此利用隐藏控件HiddenField,因为ID用户不需要知道,但是进行一系列的操作必须用到。
GridViewID="
GridView1"
SqlDataSource1"
PageSize="
5"
AllowPaging="
True"
AutoGenerateColumns="
false"
Columns>
TemplateField>
ItemTemplate>
CheckBoxID="
ckbID"
/>
HiddenFieldID="
hidID"
Value='
%#Eval("
ProductID"
)%>
'
隐藏控件用于记录产品编号,在选中该行时根据产品编号进行其他相关操作。
/ItemTemplate>
%--<
BoundFieldHeaderText="
PName"
DataField="
ProductName"
--%>
HyperLinkFieldHeaderText="
DataNavigateUrlFormatString="
ProductDetail.aspx?
Pid={0}&
name={1}"
DataNavigateUrlFields="
ProductID,ProductName"
Price"
UnitsInStock"
%--文本框显示数据:
模板列(自定义)
Quantity"
QuantityPerUnit"
--%>
TemplateFieldHeaderText="
TextBoxID="
txtquantity"
Text='
CompareValidatorID="
valiQ"
ErrorMessage="
*"
Text="
ControlToValidate="
ValueToCompare="
0"
Operator="
GreaterThan"
Dele"
ButtonID="
btnDele"
删除"
OnClientClick="
returnconfirm('
真的要删除吗?
)"
OnCommand="
Delete"
CommandArgument='
/Columns>
GridView>
显示选中的行的相关数据
Label1.Text="
;
foreach(GridViewRowrowinGridView1.Rows)
{boolIsChecked=((CheckBox)row.FindControl("
)).Checked;
if(IsChecked)
{stringid=((HiddenField)row.FindControl("
)).Value;
stringprice=row.Cells[2].Text;
stringQuan=((TextBox)row.FindControl("
)).Text;
Label1.Text+="
id:
+id+"
price:
+price+"
quantity:
+Quan+"
。
}
另一页面接收到的数据
Label1.Text=Request.QueryString["
Pid"
];
Pid是在上一页面中传递参数时定义的名称,名称必须一致
Label2.Text=Request.QueryString["
name"
显示如上的形式用到了控件Datalist
显示所有的产品,每一行显示3个RepeatColumns,横向或竖向设置用RepeatDirection;
价格保留两位小数,并且显示贷币符号Eval("
UnitPrice"
"
{0:
c}"
);
假如库存小于20,显示缺货;
否则显示正常,用到了当前代码中的方法。
DataListID="
DataList1"
RepeatColumns="
3"
RepeatDirection="
Horizontal"
Width="
100%"
table>
tr>
tdrowspan="
ImageID="
img"
ImageUrl='
imagePath"
100"
Height="
150"
/td>
td>
名称:
HyperLinkID="
Pname"
%#Eval("
NavigateUrl='
name="
+Eval("
))%>
一次传递多个参数,但是Eval()最多有两个参数,要进行多个参数的传递用到了字符串的拼接技术。
/tr>
价格:
LabelID="
lblP"
价格显示贷币符号
库存:
lblS"
%#StockStatus(int.Parse(Eval("
).ToString()))%>
库存显示按照上面的要求显示数据,调用了代码中的方法:
StockStatus()
protectedstringStockStatus(intQuantity){returnQuantity>
20?
"
正常"
:
缺贷"
tdcolspan="
2"
AddToSc"
添加到购物车"
AddTo"
CommandName="
Fc"
AddToF"
添加到收藏夹"
S"
方法:
protectedvoidAddTo(objecto,CommandEventArgse)
{if(e.CommandName=="
)
Response.Redirect("
Default.aspx?
Pid="
+e.CommandArgument);
if(e.CommandName=="
SavePage.aspx?
+e.CommandArgument);
/table>
DataList>
数据库绑定
一、提取表Products的前20条数据展示,提取所有的列,但是只显示name列和价格列,用代码实现数据的提取。
二、用dataset加载Categories表中的所有数据,用下拉框展示,显示种类的名称,记载种类的ID,在列表框中显示以c开头的名称,分页用到页码改变事件,并且要重新绑定
OnSelectedIndexChanged="
DropDownList1_SelectedIndexChanged"
ListBoxID="
ListBox1"
137px"
ListBox>
AllowSorting="
//进行分页、排序OnPageIndexChanging="
GridView1_PageIndexChanging"
OnSorting="
GridView1_Sorting"
Name"
SortExpression="
//根据Price排序
//根据CategoryID排序
ImageFieldDataImageUrlField="
ControlStyle-Height="
40"
相关的代码片断:
protectedvoidDropDownList1_SelectedIndexChanged(objectsender,EventArgse)
{//绑定
DataAccessda=newDataAccess();
DataSetds=da.GetProducts();
DataViewdv=newDataView(ds.Tables[0]);
dv.RowFilter="
CategoryID="
+DropDownList1.SelectedValue;
//进行过滤;
根据下拉列表框的值显示对应的数据
//根据CID过滤产品的数据,按照价格排序
dv.Sort="
UnitPricedesc"
//dv绑定到表格
GridView1.DataSource=dv;
GridView1.DataBind();
//列表框显示数据,以c开头的产品名称:
通配符
DataViewdv1=newDataView(ds.Tables[0]);
dv1.RowFilter="
ProductNamelike'
c%'
//过滤,以c开头的产品名称
ListBox1.DataSource=dv1;
ListBox1.DataTextField="
ListBox1.DataBind();
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
{//分页
//当gridview的页面的索引发生改变时,更改为新的页面索引。
GridView1.PageIndex=e.NewPageIndex;
//重新绑定
+DropDownList1.SelectedValue;
protectedvoidGridView1_Sorting(objectsender,GridViewSortEventArgse)
{//对数据排序表达式排序,然后绑定
if(ViewState["
sort"
]==null)
ViewState["
]="
asc"
stringsortstate=ViewState["
].ToString();
if(sortstate=="
|sortstate=="
desc"
sortstate="
elsesortstate="
//?
数据的实时性:
得到最新数据--Cache
//优化:
页面第一次加载时,将信息保存到ds中
DataSetds=newDataSet();
if(Cache["
DS"
{DataAccessda=newDataAccess();
ds=da.GetProducts();
Cache.Insert("
ds,null,DateTime.Now.AddHours
(1),TimeSpan.Zero);
elseds=(DataSet)Cache["
//这种方法不能保证数据的实时性。
//DataSetds=(DataSet)Application["
//if(ds.Tables.Count==0)
//{DataAccessda=newDataAccess();
//ds=da.GetProducts();
//Application["
]=ds;
//}
dv.Sort=e.SortExpression+"
+sortstate;
//改写
]=sortstate;
}
多表的应用一对多,一是父,多是子表
publicclassDataAccess
{//表Employees和表Orders
publicDataSetGetEmployeeAndOrders()
{
stringconStr=ConfigurationManager.ConnectionStrings["
].ConnectionString;
SqlConnectionconn=newSqlConnection(conStr);
SqlDataAdapterda=newSqlDataAdapter("
select*fromEmployeesselect*fromOrders"
conn);
da.Fill(ds);
//修改表名
ds.Tables[0].TableName="
Em"
ds.Tables[1].TableName="
Od"
//创建两个表之间的关系
DataColumnPareCol=ds.Tables["
].Columns["
EmployeeID"
DataColumnChildCol=ds.Tables["
DataRelationdr=newDataRelation("
Relation"
PareCol,ChildCol);
dr.Nested=true;
//以便创建嵌套的xml数据
ds.Relations.Add(dr);
returnds;
}
页面中应用
DataSetds=da.GetEmployeeAndOrders();
//获取当前雇员的订单的数量
//先得到主表中某一行--父行,根据父行找所有的子行
//根据下拉列表框中选中的雇员的名称的ID找到表中对应的那一行的数据。
DataRowPareRow=ds.Tables[0].Rows[DropDownList1.SelectedIndex];
DataRow[]ChildRows=PareRow.GetChildRows("
);
Label1.Text=ChildRows.Length.ToString();
//行视图:
dataView
//要显示所有的数据,根据运费排序
DataViewPdv=newDataView(ds.Tables[0]);
DataViewCdv=Pdv[DropDownList1.SelectedIndex].CreateChildView("
Cdv.Sort="
Freight"
GridView1.DataSource=Cdv;
动态设置主题
ListItem>
Cold<
Hot<
&
protectedvoidPage_PreInit(objecto,EventArgse)
{Page.Theme=Profile.dpt;
DropDownList1.Text=Profile.dpt;
protectedvoidPage_Load(objectsender,EventArgse)
{}
protectedvoidDropDownList1_SelectedIndexChanged(object