1 datalist的绑定
后端代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("num", typeof(int));
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i;
dt.Rows.Add(dr);
}
DataList1.DataSource = dt;
DataList1.DataBind();
}
}
前端代码
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
数字:<%# ((DataRowView)Container.DataItem)["num"] %>
平方:<%# (int)((DataRowView)Container.DataItem)["num"] * (int)((DataRowView)Container.DataItem)["num"]%>
货币:<%# DataBinder.Eval(Container.DataItem,"num","${0:c}") %>
</ItemTemplate>
</asp:DataList>
效果如下:
再举个简单的例子
用label来绑定textbox的值
前端:<asp:Label ID="Label1" runat="server"><%# TextBox1.Text %></asp:Label>
后端: protected void TextBox1_TextChanged(object sender, EventArgs e)
{
Page.DataBind();
}
效果:
2datalist的其他功能
<EditItemTemplate>
<asp:LinkButton ID="LinkButton3" runat="server" CommandName="Update">保存</asp:LinkButton>
<asp:LinkButton ID="LinkButton4" runat="server" CommandName="Cancel">取消</asp:LinkButton>
<%# DataBinder.Eval(Container.DataItem,"userID") %>
<asp:TextBox ID="txtname" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem,"userName") %>'></asp:TextBox>
</EditItemTemplate>
<FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
<FooterTemplate>
<hr />
<br />
模版的页脚
</FooterTemplate>
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />
<HeaderTemplate>
模版的页眉<br />
<hr />
</HeaderTemplate>
<ItemStyle BackColor="#DEDFDE" ForeColor="Black" />
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="select">查看详细信息</asp:LinkButton>
<%# DataBinder.Eval(Container.DataItem,"userID") %>
<%# DataBinder.Eval(Container.DataItem,"level") %>
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="Edit">编辑</asp:LinkButton>
</ItemTemplate>
<SelectedItemTemplate>
员工的姓名:<%# DataBinder.Eval(Container.DataItem,"level") %>m 密码:<%# DataBinder.Eval(Container.DataItem,"passWord") %>
</SelectedItemTemplate>
后端;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataBingtoList();
}
}
private void DataBingtoList()
{
// int curPage = Convert.ToInt32(this.lbYe.Text);
SqlConnection con = DB.createCon();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("select * from [user]", con);
DataSet ds = new DataSet();
sda.Fill(ds, "emp");//emp相当于给ds起了个别名。
DataList1.DataKeyField = "userID";
DataList1.DataSource=ds.Tables["emp"];
DataList1.DataBind();
}
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName=="select")
{
DataList1.SelectedIndex = e.Item.ItemIndex;
DataBingtoList();
}
}
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
DataList1.EditItemIndex = e.Item.ItemIndex;//都是从0开始
DataBingtoList();
}
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
string empID=DataList1.DataKeys[e.Item.ItemIndex].ToString();
string userName = ((TextBox)e.Item.FindControl("txtName")).Text;
SqlConnection conn = DB.createCon();
conn.Open();
SqlCommand cmd = new SqlCommand("update [user] set userName="+userName+" where userID="+empID,conn);
cmd.ExecuteNonQuery();
DataList1.EditItemIndex = -1;//编辑项置空
DataBingtoList();
}
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{
DataList1.EditItemIndex = -1;//编辑项置空,取消编辑
DataBingtoList();
}
}
效果:
一点击查看详细信息:
一点击编辑:,可以保存和取消修改。
3Repeater的用法。
举例:分页显示:
后端代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
lbYe.Text = "1";
dataBindToRepater();
}
}
private void dataBindToRepater()
{
int curPage = Convert.ToInt32( this.lbYe.Text);//获取当前页数
SqlConnection con = DB.createCon();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("select * from [user]", con);
DataSet ds = new DataSet();
sda.Fill(ds, "emp");
PagedDataSource ps = new PagedDataSource();
ps.DataSource=ds.Tables["emp"].DefaultView;
ps.AllowPaging = true;//允许分页
ps.PageSize = 3;//页大小为3
ps.CurrentPageIndex = curPage - 1;//从0开始的
Button1.Enabled = true;
Button2.Enabled = true;
if (curPage==1)
{
Button1.Enabled = false;
}
if (curPage==ps.PageCount)
{
Button2.Enabled = false;
}
Repeater1.DataSource = ps;
Repeater1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
lbYe.Text =(Convert.ToInt32( lbYe.Text) - 1).ToString();
dataBindToRepater();
}
protected void Button2_Click(object sender, EventArgs e)
{
lbYe.Text = (Convert.ToInt32(lbYe.Text) + 1).ToString();
dataBindToRepater();
}
}
前端代码:
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem,"userID") %>
<%# DataBinder.Eval(Container.DataItem,"level") %>
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<font color="red">
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem,"userID") %>
<%# DataBinder.Eval(Container.DataItem,"level") %>
</td>
</tr>
</font>
</AlternatingItemTemplate>
<HeaderTemplate>
<h3>
页眉</h3>
<table border="1">
<tr>
<td>员工名字</td>
</tr>
</HeaderTemplate>
<FooterTemplate>
<h4>
页脚</h4>
</table>
</FooterTemplate>
效果图:
有点问题,不过这是前端的知识,我也不太会调。