一。DropDownList控件
DropDownList控件的DataTextField和DataValueField的区别 说明文档记述: ListControl.DataTextField 属性 获取或设置为列表项提供文本内容的数据源字段。ListControl.DataValueField 属性获取或设置为各列表项提供值的数据源字段。
网上摘录: DataTextField用来作显示内容,一般给别人看,例如是一张表的某个字段的内容 DataValueField用来放唯一性的字段值,一般是主键。
DataTextField是显示出来的内容,DataValueField是你controlid.selectedvalue的值,比如说吧,一般DataTextField是员工的名字,张三,里斯等,DataValueField是员工的id,名字可以重复,但是id不可以重复,可以作为一个员工的唯一标识,根据标识处理数据,就不会出错了,当然了,你也可以把两个弄成一样的,也是可以的 下面是以dropdownlist为例,绑定数据
//conn为数据库连接对象,DDL1为dropdownlist控件
string DAstr="select * from jobs";
SqlDataAdapter DA=new SqlDataAdapter(DAstr,conn);
DataSet DS=new DataSet ();
DA.Fill(DS, "jobs");
DDL1.DataSource = DS;
DDL1.DataTextField = "min_lvl";
DDL1.DataValueField = "job_id";
DDL1.DataBind()
二。
GridView控件
(1)DataKeyNames一般都是用来对当前行做唯一标示的,所以一般为数据库的ID。 (2)GridView.DataKeys[e.Row.RowIndex].Value,e.Row.RowIndex是获取事件对应的行,GridView.DataKeys[e.Row.RowIndex].Value就是获取对应行的唯一标示也就是DataKeyNames所指定列的值。
//调用自定义类中的ReturnDataSet方法返回一个DataSet类型的数据集
SqlDataAdapter adapter=new SqlDataAdapter ();
string sql="select * from tb_matter order by id desc"; //sql语句,用于查询表中数据
adapter.Fill(ds,"tb_matter"); //tb_matter是数据库中的留言信息表
GridView1.DataSource = ds;
//获得一个包含当前显示项的主键字段的名称为id的数组GridView1 .DataKeyNames = new string[] { "id"};
//绑定数据
GridView.DataBind();
(2).SqlConnection con = new SqlConnection("server=(local);uid=sa; pwd=;database=db_ManyChat");
//打开数据库的连接
con.Open();
//创建一个SqlCommand对象的实例
SqlCommand com = new SqlCommand("delete from tb_matter where id='" + GridView1.DataKeys[e.RowIndex].Value + "'", con);
//执行SqlCommand命令
com.ExecuteNonQuery();
//执行页面刷新
Page_Load(sender, e);
gridview 分页
用allowpaging比较方便,具体步骤: 1.首先要在GridView中加入: AllowPaging="true" PageSize="10" OnPageIndexChanging="GridView1_PageIndexChanging" 2.要在后台加入GridView1_PageIndexChanging()方法: protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; DataBind();//重新绑定一遍数据 }
三。DataList控件
上图是Datalist控件的显示
<asp:DataList ID="DataList1" runat="server" Height="150px" Width="160px">
<ItemTemplate>
<table>
<tr>
<td>
<asp:Image ID="Image2" runat="server" ImageUrl='<%# DataBinder.Eval(Container.DataItem,"img") %>' />
</td>
<td>
<asp:LinkButton ID="LinkButton1" Font-Size="Small" runat="server" Font-Underline="false" Text='<%# DataBinder.Eval(Container.DataItem,"name") %>'>LinkButton</asp:LinkButton>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
DataList前台的代码,下面是DataList后台数据绑定代码
public void BindData()
{
int curpage = Convert.ToInt32(this.labPage.Text);
PagedDataSource ps = new PagedDataSource();
//建立与数据库的连接
SqlConnection con = new SqlConnection("server=(local);user id=sa; pwd=;database=db_ManyChat");
//打开数据库连接
con.Open();
//创建SqlDataAdapter对象的实例
SqlDataAdapter ada = new SqlDataAdapter("select * from tb_user", con);
//创建DataSet数据集
DataSet ds = new DataSet();
//应用SqlDataAdapter对象的Fill方法填充数据集
ada.Fill(ds,"tb_user");
ps.DataSource = ds.Tables["tb_user"].DefaultView;
ps.AllowPaging = true;
ps.PageSize = 6;
ps.CurrentPageIndex = curpage - 1;
this.lnkbtnUp.Enabled = true;
this.lnkbtnNext.Enabled = true;
this.lnkbtnBack.Enabled = true;
this.lnkbtnOne.Enabled = true;
if (curpage == 1)
{
this.lnkbtnOne.Enabled = false;//不显示第一页按钮
this.lnkbtnUp.Enabled = false;//不显示上一页按钮
}
if (curpage == ps.PageCount)
{
this.lnkbtnNext.Enabled = false;//不显示下一页
this.lnkbtnBack.Enabled = false;//不显示最后一页
}
this.labBackPage.Text = Convert.ToString(ps.PageCount);
dlName.DataSource = ps;
//指定数据源中的键字段
dlName.DataKeyField = "name";
//绑定数据源
dlName.DataBind();
}