<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<table border=1><tr><td><%#Eval("id") %></td><td><%#Eval("features_e")%></td><td><img src="<%#Eval("ylt")%>" /></td><td>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /></td></tr></table>
</ItemTemplate>
</asp:DataList>
上面是我的前台 public void dsband()
{
OleDbConnection conn = db.getconnection();
conn.Open();
string mysql = "SELECT * FROM testbhproduct order by id desc";
OleDbDataAdapter oa = new OleDbDataAdapter(mysql, conn);
DataSet ds = new DataSet();
oa.Fill(ds, "tb");
DataList1.DataSource = ds.Tables["tb"].DefaultView;
this.DataList1.DataKeyField = "id";
DataList1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
}
}
这里是我的后台,我要怎么样才能点击那按钮直接删除那行,我的难点就在于怎么获取那行的ID。请高手指教。
<ItemTemplate>
<table border=1><tr><td><%#Eval("id") %></td><td><%#Eval("features_e")%></td><td><img src="<%#Eval("ylt")%>" /></td><td>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /></td></tr></table>
</ItemTemplate>
</asp:DataList>
上面是我的前台 public void dsband()
{
OleDbConnection conn = db.getconnection();
conn.Open();
string mysql = "SELECT * FROM testbhproduct order by id desc";
OleDbDataAdapter oa = new OleDbDataAdapter(mysql, conn);
DataSet ds = new DataSet();
oa.Fill(ds, "tb");
DataList1.DataSource = ds.Tables["tb"].DefaultView;
this.DataList1.DataKeyField = "id";
DataList1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
}
}
这里是我的后台,我要怎么样才能点击那按钮直接删除那行,我的难点就在于怎么获取那行的ID。请高手指教。
解决方案 »
- 如何将object对象类型转换成string数组类型
- Repeater根据数据源添加超链接
- 网站的友情链接功能(可以动态添加)怎么做?
- asp.net 怎样查询数据库返回一个数据
- VC6/MFC开发 如何平滑地转到 ASP.NET/web 开发? 请过来人推荐几本精通ASP.NET的好书!
- FckEditor在线编辑器如何让他只能插入图片地址?
- 页面引入?
- datagrid如果有多个选择列!如何判断点了哪一个呢??
- ASP.NET高手必须进来看看!
- 在WEB环境下如何打印datagrid中的内容?
- 怎样实现当鼠标移到GridView某一行时,得到该行某列的字段值?
- **********请求几个问题************
在datalist的 rowcommand中写if (e.commandname=="domy")
{
//做你的事情
}
<ItemTemplate>
<table border=1><tr><td><%#Eval("id") %></td><td><%#Eval("features_e")%></td><td><img src="<%#Eval("ylt")%>" /></td><td>
<asp:Button ID="Button1" runat="server" Text="Button" CommandName="Del" /></td></tr></table>
</ItemTemplate>
</asp:DataList>把Button的单击事件去掉 换成CommandName="Del"
在DateList里加入DataKeyField=“ID” ID是你数据源的字段
Datalist加入onitemcommand事件 protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "Del")//Button里的CommandName
{
int ID = DataList1.DataKeys[e.Item.ItemIndex];//获取删除信息的ID
///
///删除信息的方法
///
Delete(ID);
}
}
要是能把DataList放到UpdatePanel里效果就更好了
忘了
应该是int ID=Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex].ToString());
<ItemTemplate>
<table border=1><tr><td> <%#Eval("id") %> </td><td><%#Eval("features_e")%></td><td><img src="<%#Eval("ylt")%>" /></td><td>
<asp:Button ID="Button1" runat="server" Text="Button" oncommand="Button1_Command" CommandArgument='<%#Eval("id") %>'/></td></tr></table>
</ItemTemplate>
</asp:DataList>protected void Button1_Command(object sender, CommandEventArgs e)
{
string id= e.CommandArgument.ToString();
//do something
}
纯胡说!!你自己最好琢磨下到底行不行。最好百度下“NamingContainer”是什么东西。然后你再说为什么不行,为什么行。
<a href='ProductClassList.aspx?action=del&id=<%#Eval("id") %>' class="list_link" onclick="{if(confirm('确认删除吗?')){return true;}return false;}"><img src="Images/del.gif" border="0" alt="删除"/></a> protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DisplayProduct();//绑定产品信息
}
if (Request["action"] != null)
{
int id = Convert.ToInt32(Request["id"]);
DelPro(id);//删除
}
} /// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
public void DelPro(int id)
{
ProductManager.DelProduct(id);
DisplayProduct();
}
----------------------------------------
protected void PosButton_Click(object sender, EventArgs e)
{
string Action = ((Button)sender).CommandArgument;
int itemIndex = ((DataListItem)((Button)sender).NamingContainer).ItemIndex;
string id = DataList1.DataKeys[itemIndex].ToString();
switch (Action)
{
case "Delete":
MyDoSql.ExcuteSql("delete from CM_Article where Id=" + id);
<HeaderTemplate>
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="0" class="sys_list_table"
bgcolor="#FFFFFF">
<tr class="TR_BG">
<td align="center" valign="middle" class="sys_topBg">
ID
</td>
<td align="center" valign="middle" class="sys_topBg">
类别名称
</td>
<td align="center" valign="middle" class="sys_topBg">
操作
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr class="TR_BG_list" onmouseover="this.style.backgroundColor='#BEFBD1'" onmouseout="this.style.backgroundColor='#FFFFFF'">
<td align="center" valign="middle">
<%#Eval("id") %>
</td>
<td align="center" valign="middle">
<%#Eval("name") %>
</td>
<td align="center" valign="middle">
<a href='CaseTypeUpdate.aspx?id=<%#Eval("id") %>' class="list_link">
<img src="Images/edit.gif" border="0" alt="修改" />
</a><a href='CaseTypeList.aspx?action=del&id=<%#Eval("id") %>' class="list_link"
onclick="{if(confirm('确认删除吗?')){return true;}return false;}">
<img src="Images/del.gif" border="0" alt="删除" /></a>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>后台 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{ DisplayCaseType();//绑定案例类别信息
}
if (Request["action"] != null)
{
int id = Convert.ToInt32(Request["id"]);
DelPro(id);//删除
}
} /// <summary>
/// 执行删除
/// </summary>
/// <param name="id"></param>
public void DelPro(int id)
{ int result = CaseTypeManager.DelType(id); MessageBox.ShowAndRedirect(this, "删除成功", "CaseTypeList.aspx");
}够明白的了吧