前台代码:
<asp:DataList ID="DataList1" runat="server" RepeatColumns="5"
OnDeleteCommand="DataList1_DeleteCommand" OnCancelCommand="DataList1_CancelCommand"
OnEditCommand="DataList1_EditCommand" OnUpdateCommand="DataList1_UpdateCommand">
<ItemTemplate>
<asp:Image ID="image1" runat="server" ImageUrl='<%# Eval("TupianPath")%>'/><br />
<asp:Label ID="Label1" runat="server" Text='<%# Eval("TupianName") %>'></asp:Label><br />
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Edit">编辑</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="Delete">删除</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:Image ID="image1" runat="server" ImageUrl='<%# Eval("TupianPath")%>'/><br />
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("TupianName") %>'></asp:TextBox><br />
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Update">更新</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="Cancel">取消</asp:LinkButton>
</EditItemTemplate>
</asp:DataList>
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
String LB = Request.QueryString["LB"].ToString();
AdoClass ac = new AdoClass();
String sqlstr = "SELECT * FROM Tupian WHERE LBID='" + LB + "'";
DataSet ds = ac.GetDs(sqlstr, "TP");
DataList1.DataSource = ds;
DataList1.DataKeyField = "TupianID";
DataList1.DataBind(); } protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
String id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
String sqlstr = "Delete From Tupian Where TupianID='" + id + "' ";
AdoClass ac = new AdoClass();
SqlCommand cmd = ac.GetCmd(sqlstr);
DataList1.DataBind(); } protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
DataList1.EditItemIndex = e.Item.ItemIndex;
DataList1.DataBind();
} protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{ DataList1.EditItemIndex = -1;
DataList1.DataBind(); } protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{ String id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
String a = ((TextBox)e.Item.FindControl("TextBox1")).Text;
String sqlstr = "Update Tupian Set TupianName='" + a + "' Where TupianID='" + id + "'";
AdoClass ac = new AdoClass();
SqlCommand cmd = ac.GetCmd(sqlstr);
DataList1.EditItemIndex = -1;
DataList1.DataBind();
}编辑和取消功能倒正常,删除和更新点了没反应。
String id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
String sqlstr = "Delete From Tupian Where TupianID='" + id + "' ";改成
String id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
String sqlstr = "Delete From Tupian Where TupianID=" + id ;
或
int id = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
String sqlstr = "Delete From Tupian Where TupianID='" + id + "' ";
或
int id = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
String sqlstr = "Delete From Tupian Where TupianID=" + id;
或
int id = (int)DataList1.DataKeys[e.Item.ItemIndex];
String sqlstr = "Delete From Tupian Where TupianID='" + id + "' ";
或
int id = (int)DataList1.DataKeys[e.Item.ItemIndex];
String sqlstr = "Delete From Tupian Where TupianID=" + id;都没用..........应该不是格式的问题吧 TupianID是Tupian表的主键,Tupian表还有TupianPath、TupianName等字段
<asp:DataList ID="DataList1" runat="server" RepeatColumns="5"
OnDeleteCommand="DataList1_DeleteCommand" OnCancelCommand="DataList1_CancelCommand"
OnEditCommand="DataList1_EditCommand" OnUpdateCommand="DataList1_UpdateCommand">
<ItemTemplate>
<asp:Image ID="image1" runat="server" ImageUrl='<%# Eval("TupianPath")%>'/><br />
<asp:Label ID="Label1" runat="server" Text='<%# Eval("TupianName") %>'></asp:Label><br />
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Edit">编辑</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="Delete">删除</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:Image ID="image1" runat="server" ImageUrl='<%# Eval("TupianPath")%>'/><br />
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("TupianName") %>'></asp:TextBox><br />
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Update">更新</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="Cancel">取消</asp:LinkButton>
</EditItemTemplate>
</asp:DataList>
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
String LB = Request.QueryString["LB"].ToString();
AdoClass ac = new AdoClass();
String sqlstr = "SELECT * FROM Tupian WHERE LBID='" + LB + "'";
DataSet ds = ac.GetDs(sqlstr, "TP");
DataList1.DataSource = ds;
DataList1.DataKeyField = "TupianID";
DataList1.DataBind(); } protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
String id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
String sqlstr = "Delete From Tupian Where TupianID='" + id + "' ";
AdoClass ac = new AdoClass();
SqlCommand cmd = ac.GetCmd(sqlstr);
DataList1.DataBind(); } protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
DataList1.EditItemIndex = e.Item.ItemIndex;
DataList1.DataBind();
} protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{ DataList1.EditItemIndex = -1;
DataList1.DataBind(); } protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{ String id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
String a = ((TextBox)e.Item.FindControl("TextBox1")).Text;
String sqlstr = "Update Tupian Set TupianName='" + a + "' Where TupianID='" + id + "'";
AdoClass ac = new AdoClass();
SqlCommand cmd = ac.GetCmd(sqlstr);
DataList1.EditItemIndex = -1;
DataList1.DataBind();
}编辑和取消功能倒正常,删除和更新点了没反应。
String id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
String sqlstr = "Delete From Tupian Where TupianID='" + id + "' ";改成
String id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
String sqlstr = "Delete From Tupian Where TupianID=" + id ;
或
int id = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
String sqlstr = "Delete From Tupian Where TupianID='" + id + "' ";
或
int id = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
String sqlstr = "Delete From Tupian Where TupianID=" + id;
或
int id = (int)DataList1.DataKeys[e.Item.ItemIndex];
String sqlstr = "Delete From Tupian Where TupianID='" + id + "' ";
或
int id = (int)DataList1.DataKeys[e.Item.ItemIndex];
String sqlstr = "Delete From Tupian Where TupianID=" + id;都没用..........应该不是格式的问题吧 TupianID是Tupian表的主键,Tupian表还有TupianPath、TupianName等字段
解决方案 »
- .net 从数据库中读取图片的问题
- 水晶报表如何导出excel2007格式
- asp.net 循环获取TabContainer控件中嵌套的TabPanel呢?
- 获取 Repeater中FooterTemplate里的控件值
- |M| MessageQueue.Create(@"myMachine\MyQueue"); 请问里面的"@"是什么意思
- 先给50分!!!!!!!!!!!!!!!!!!!!不够再给!!!!!!!!!!!!
- 同样的问题出现了第二次
- 数字字符倒序还有问题!刚才结贴结得太快了!
- 求助:aspnet_wp.exe (PID: 844) was recycled because it was suspected to be in a deadlocked state.
- 谁知道为什么装了.net后.asp的文件不能浏览?
- [C#] 在视图设计的源中使用类的问题。
- IE最大能打开的图片有多大? 我上传的图片有600K+的就打不开了。但能下载。
我上次也是这样的问题。
好像你每次重新绑定数据都没有获取最新数据吧。好像是只更新了数据库,没有重新获取数据
{
DataList1.EditItemIndex = e.Item.ItemIndex;
Bind();
}
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
int productID = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]); TextBox txtName = (TextBox)e.Item.FindControl("txtName"); DataList1.EditItemIndex = -1;
Bind();
}
protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
int ID = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]); Bind();
}
调试的时候执行sql语句了吗?编辑后点击更新,看看sql语句是什么,看看是否执行了DataList1_UpdateCommand函数
点任何按钮DataList就会变成空白
楼上的很喜欢讥讽新手么??
其次你的DATALIST的数据源是内存中的DS,你每次更新DATALIST之前没有更新DS啊。
你的删除操作,调用了AdoClass的方法,如果SQL的TUPIANID是字符串的话,至少数据库里应该更新了,很可能这个ID是整数型的,导致SQL失败。而且删除方法里的DATALIST重新绑定之前没有刷新内存中的DS,很明显你的直接数据源不是AdoClass,所以即使AdoClass更新了,你不更新DS,也是绑定不到数据的。
编辑方法也是同一个毛病,你的直接数据源明明是内存里的DS,而不是数据库,你对着内存修改他要能更新数据库可真闹鬼了。