DataList.问题 我在用DatatList绑定数据源后(项模板),我还加入了编辑模板,能不能想GridView那样,点击一下编辑进去编辑模式,点击一下取消就又回到原来的状态(想模板状态) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的想法不错,但是现在是实现不了的,除非你自己写啦。因为GridView实现是靠CommandField,而DataList里是没有这样的列的。 纯属个看法,不对的还忘多多包涵…… DataList 编辑功能我随便写的列子 看看 <form id="form1" runat="server"> <div> <asp:DataList ID="DataList1" runat="server" DataKeyField="destinID" OnEditCommand="DataList1_EditCommand" OnCancelCommand="DataList1_CancelCommand" OnUpdateCommand="DataList1_UpdateCommand"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem,"destinName") %> <asp:Button ID="Button1" runat="server" CommandName="edit" Text="编辑" /> </ItemTemplate> <EditItemTemplate> <%# DataBinder.Eval(Container.DataItem,"destinName") %> <asp:TextBox ID="TextBox1" runat="server" Width="41px" Text='<%#DataBinder.Eval(Container.DataItem,"destinName") %>'></asp:TextBox> <%#DataBinder.Eval(Container.DataItem,"identityID") %> <asp:TextBox ID="TextBox2" runat="server" Width="72px" Text='<%#DataBinder.Eval(Container.DataItem,"identityID") %>'></asp:TextBox> <asp:Button ID="Button2" runat="server" CommandName="update" Text="更新" /> <asp:Button ID="Button3" runat="server" CommandName="cancel" Text="取消" /> </EditItemTemplate> </asp:DataList></div> </form>cs 代码 public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Bind(); } } protected void DataList1_EditCommand(object source, DataListCommandEventArgs e) { DataList1.EditItemIndex = e.Item.ItemIndex; Bind(); } string connectionstring = "server=.;database=FlightManagement;Integrated Security=sspi"; public void Bind() { SqlConnection conn = new SqlConnection(connectionstring); SqlDataAdapter Adapter = new SqlDataAdapter("select * from destinTable", conn); DataSet ds = new DataSet(); Adapter.Fill(ds); DataList1.DataSource = ds.Tables[0].DefaultView; DataList1.DataBind(); } protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e) { DataList1.EditItemIndex = -1; } protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e) { string id = DataList1.DataKeys[e.Item.ItemIndex].ToString(); TextBox tb1 =(TextBox) e.Item.FindControl("Textbox1"); TextBox tb2 = (TextBox)e.Item.FindControl("TextBox2"); string sql = "update destinTable set destinName='" + tb1.Text.ToString() + "',identityID='" + tb2.Text.ToString() + "'where destinID=" +id+ " "; SqlConnection conn = new SqlConnection(connectionstring); conn.Open(); SqlCommand comm = new SqlCommand(sql, conn); comm.ExecuteNonQuery(); Bind(); conn.Close(); DataList1.EditItemIndex = -1; }}应该是这样不知道能否达到要求 datalist嵌套表格问题 designer.cs里面控件,改名字了,怎么不会自动变啊?困扰死了。。。。。 VS2005 新建Aspx等页面没有自动生成.resx资源文件,怎么解决 在Global.asax里定时在根目录生成一文件,本机测试完全正常,上传服务器后没反应~~~~ 属性和控件名,重名问题,急! 各位asp.net高手都有什么开发工具? 急,treeview的动态绑定问题 oledb数据操作 .net 工程拿到一台没有装.net的服务器上需要装什么才能正常显示完成的网页? asp.net连接sql server 奇怪的问题? 按钮的问题 Repeater3个问题
纯属个看法,不对的还忘多多包涵……
我随便写的列子 看看
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server" DataKeyField="destinID" OnEditCommand="DataList1_EditCommand" OnCancelCommand="DataList1_CancelCommand" OnUpdateCommand="DataList1_UpdateCommand">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"destinName") %>
<asp:Button ID="Button1" runat="server" CommandName="edit" Text="编辑" />
</ItemTemplate>
<EditItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"destinName") %>
<asp:TextBox ID="TextBox1" runat="server" Width="41px" Text='<%#DataBinder.Eval(Container.DataItem,"destinName") %>'></asp:TextBox>
<%#DataBinder.Eval(Container.DataItem,"identityID") %>
<asp:TextBox ID="TextBox2" runat="server" Width="72px" Text='<%#DataBinder.Eval(Container.DataItem,"identityID") %>'></asp:TextBox>
<asp:Button ID="Button2" runat="server" CommandName="update" Text="更新" />
<asp:Button ID="Button3" runat="server" CommandName="cancel" Text="取消" />
</EditItemTemplate>
</asp:DataList></div>
</form>cs 代码
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
DataList1.EditItemIndex = e.Item.ItemIndex;
Bind();
}
string connectionstring = "server=.;database=FlightManagement;Integrated Security=sspi";
public void Bind()
{
SqlConnection conn = new SqlConnection(connectionstring);
SqlDataAdapter Adapter = new SqlDataAdapter("select * from destinTable", conn);
DataSet ds = new DataSet();
Adapter.Fill(ds);
DataList1.DataSource = ds.Tables[0].DefaultView;
DataList1.DataBind();
}
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{
DataList1.EditItemIndex = -1;
}
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
string id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
TextBox tb1 =(TextBox) e.Item.FindControl("Textbox1");
TextBox tb2 = (TextBox)e.Item.FindControl("TextBox2");
string sql = "update destinTable set destinName='" + tb1.Text.ToString() + "',identityID='" + tb2.Text.ToString() + "'where destinID=" +id+ " ";
SqlConnection conn = new SqlConnection(connectionstring);
conn.Open();
SqlCommand comm = new SqlCommand(sql, conn);
comm.ExecuteNonQuery();
Bind();
conn.Close();
DataList1.EditItemIndex = -1;
}
}应该是这样
不知道能否达到要求