|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于new隐藏成员的作用,往往是出于使用了一个第三方类库,而你又无法获得这个类库的源代码,当你继承这个类库的某个类时,你需要重新实现其中的一个方法,而又需要与父类中的函数使用同样的函数,这是就需要在自定义的子类中把那个同名函数(或成员)加上new标记,从而隐藏父类中同名的成员。asp.net|尺度在asp.net2.0下,gridview是非常便利的了,加一个DATASOURCE系列的控件的话,就能够即刻和gridview绑定,非常便利。但实在也能够
利用datatable大概dataview的,这个时分就不是用datasource系列控件了。上面讲下怎样在asp.net2.0下,完成gridview控件的翻页,各列排序,
编纂的功效。
起首,我们读取的是northwind数据库中的employee表。安排一个gridview后,增加几个绑定的列,代码以下
<asp:GridViewID="GridView1"runat="server"AllowPaging="True"AllowSorting="True"
AutoGenerateColumns="False"CellPadding="4"ForeColor="#333333"GridLines="None"
Width="100%"DataKeyNames="EmployeeID"OnPageIndexChanging="GridView1_PageIndexChanging"OnRowEditing="GridView1_RowEditing"OnRowUpdating="GridView1_RowUpdating"OnSorting="GridView1_Sorting"PageSize="3"OnRowCancelingEdit="GridView1_RowCancelingEdit"OnRowCommand="GridView1_RowCommand">
<FooterStyleBackColor="#990000"Font-Bold="True"ForeColor="White"/>
<Columns>
<asp:BoundFieldDataField="employeeid"HeaderText="EmployeeID"ReadOnly="True"/>
<asp:BoundFieldDataField="firstname"HeaderText="FirstName"SortExpression="firstname"/>
<asp:BoundFieldDataField="lastname"HeaderText="LastName"SortExpression="lastname"/>
<asp:CommandFieldShowEditButton="True"/>
</Columns>
<RowStyleBackColor="#FFFBD6"ForeColor="#333333"/>
<SelectedRowStyleBackColor="#FFCC66"Font-Bold="True"ForeColor="Navy"/>
<PagerStyleBackColor="#FFCC66"ForeColor="#333333"HorizontalAlign="Center"/>
<HeaderStyleBackColor="#990000"Font-Bold="True"ForeColor="White"/>
<AlternatingRowStyleBackColor="White"/>
</asp:GridView>
起首,我们要完成分页,把AllowPaging设置为true,并设置每页的分页条数,最初在codebehind中写进
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
GridView1.PageIndex=e.NewPageIndex;
BindGrid();
}
为了完成每列都能够主动点击排序,能够设置allowsorting=true,然后设置OnSorting="GridView1_Sorting",个中gridview_sorting
代码为
protectedvoidGridView1_Sorting(objectsender,GridViewSortEventArgse)
{
ViewState["sortexpression"]=e.SortExpression;
if(ViewState["sortdirection"]==null)
{
ViewState["sortdirection"]="asc";
}
else
{
if(ViewState["sortdirection"].ToString()=="asc")
{
ViewState["sortdirection"]="desc";
}
else
{
ViewState["sortdirection"]="asc";
}
}
BindGrid();
}
很分明,设置viewsate来保留每次排序时的按次,下面的信任很简单了解。
最初,完成编纂功效,由于在aspx页面中已设置了OnRowEditing="GridView1_RowEditing",个中GridView1_RowEditing的代码为
protectedvoidGridView1_RowUpdating(objectsender,GridViewUpdateEventArgse)
{
intempid;
stringfname,lname;
empid=int.Parse(GridView1.Rows[e.RowIndex].Cells[0].Text);
fname=((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
lname=((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
SqlConnectioncnn=newSqlConnection(@"datasource=localhost;initialcatalog=northwind;userid=sa;password=123456");
cnn.Open();
SqlCommandcmd=newSqlCommand("updateemployeessetfirstname=@fname,lastname=@lnamewhereemployeeid=@empid",cnn);
cmd.Parameters.Add(newSqlParameter("@fname",fname));
cmd.Parameters.Add(newSqlParameter("@lname",lname));
cmd.Parameters.Add(newSqlParameter("@empid",empid));
cmd.ExecuteNonQuery();
cnn.Close();
GridView1.EditIndex=-1;
BindGrid();
}
protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse)
{
GridView1.EditIndex=e.NewEditIndex;
BindGrid();
}
protectedvoidGridView1_RowCancelingEdit(objectsender,GridViewCancelEditEventArgse)
{
GridView1.EditIndex=-1;
BindGrid();
}
能够看到,下面的代码和asp.net1.1版本的实在道理是差未几的。最初,bindgrid()的历程很复杂,为绑定咯
DataSetds=newDataSet();
SqlDataAdapterda=newSqlDataAdapter("select*fromemployees",@"datasource=localhost;initialcatalog=northwind;userid=sa;password=123456");
da.Fill(ds,"employees");
DataViewdv=ds.Tables[0].DefaultView;
if(ViewState["sortexpression"]!=null)
{
dv.Sort=ViewState["sortexpression"].ToString()+""+ViewState["sortdirection"].ToString();
}
GridView1.DataSource=dv;
GridView1.DataBind();
这里gridview绑定的是dataview,而且用dv.sort设定了每次排序的按次,也就是说,每次排序后其按次都是坚持稳定的。
固然最初是page_load事务咯
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!IsPostBack)
{
BindGrid();
}
}
感觉很多控件都必须自己去写代码;用了WebMatrix感觉也不是很好,毕竟没有很强的WYSIWYG效果。现在就不知道如何是好了。 |
|