html代码
<body>
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server" OnEditCommand="DataList1_EditCommand" OnItemCommand="DataList1_ItemCommand" OnCancelCommand="DataList1_CancelCommand" OnUpdateCommand="DataList1_UpdateCommand">
<SeparatorTemplate>
<hr />
</SeparatorTemplate>
<ItemTemplate>
<asp:LinkButton ID="lblist" runat="server" CommandName="select">查看</asp:LinkButton>
<asp:LinkButton ID="lbedit" runat="server" CommandName="edit">编辑</asp:LinkButton>
<%# DataBinder.Eval(Container.DataItem,"changid") %>
<%# DataBinder.Eval(Container.DataItem,"chang1") %>
</ItemTemplate>
<SelectedItemTemplate>
编号: <%# DataBinder.Eval(Container.DataItem,"changid") %>
<br />
省名称:<%#DataBinder.Eval(Container.DataItem,"chang1") %>
</SelectedItemTemplate>
<EditItemTemplate >
<asp:LinkButton ID="lbupdate" runat="server" CommandName="update">保存</asp:LinkButton>
<asp:LinkButton ID="lbcancel" runat="server" CommandName="cancel">取消</asp:LinkButton>编号: <%#DataBinder.Eval(Container.DataItem,"changid") %>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"chang1") %>'></asp:TextBox>
</EditItemTemplate>
</asp:DataList></div>
</form>
</body>
说明:<%# DataBinder.Eval(Container.DataItem,"字段名",{0:格式符}%> 这是绑字源
以下是c#中的代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.createdb();
}
}
private void createdb()
{
SqlConnection scn = new SqlConnection("server=.;database=zhang;uid=sa;pwd=410");
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = new SqlCommand("select * from chang", scn);
DataSet ds = new DataSet();
adp.Fill(ds, "chang");
this.DataList1.DataSource = ds.Tables["chang"].DefaultView;
this.DataList1.DataKeyField = "changid";
this.DataList1.DataBind();
}
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "select")
{
this.DataList1.SelectedIndex = e.Item.ItemIndex;
this.createdb();
}
}
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex = e.Item.ItemIndex;
this.createdb();
}
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
string idd = DataList1.DataKeys[e.Item.ItemIndex].ToString();
string txt = ((TextBox)e.Item.FindControl("TextBox1")).Text;
SqlConnection cn = new SqlConnection("server=.;database=zhang;uid=sa;pwd=410");
cn.Open();
SqlCommand cm = new SqlCommand("update chang set chang1='" + txt + "' where changid='" + idd + "'", cn);
cm.ExecuteNonQuery();
cn.Close();
this.DataList1.EditItemIndex = -1;
this.createdb();
}
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex = -1;
}
上面添加的为LinkButton安钮
LinkButton.commandname十分重要 当为"查看"时 commandname=select
对应datalist中的ItemCommand事件
当为"编辑"时应为 commandname=edit
对就Datalist控件的Editcommand事件
当为"保存" commandname=update
对应DataList中的 updatecommand事件
当为"取消"时commandname=cancel
对应DataList中的cancelcommand事件(datalist1.edititemindex=-1;)代表没有选取任何数值
commandname=的名称请不要乱写.按上面的写法就行
这个模板编辑很要.绑定的字段名都在HTML中添加的