datalist中填加一个button后,如何获取用户点击项的id

guestt007 2005-10-08 01:03:37
在datalist控件中,填加了一个button
代码如下:
<form runat="server">
<asp:datalist ID="MyDataList" runat="server" RepeatColumns="2">
<itemtemplate>
<table class="font-12px">
<tr>
<td valign="top">
<IMG src='<%# DataBinder.Eval(Container.DataItem, "Goods_photo", "../admin/images/{0}") %>' align=top>
</td>
<td valign="top"><b>产品名称:</b><%# DataBinder.Eval(Container.DataItem, "goods_name") %><br>
<b>产品单价:</b><%# DataBinder.Eval(Container.DataItem,"Unit_price")%><br>
<b>产品厂家:</b><%# DataBinder.Eval(Container.DataItem,"Goods_factory")%><br>
</td>
</tr>
<tr><td valign="top">
<asp:button ID="buygoods" Text="购买" runat="server" OnClick="buy_click"/>
    
<asp:button ID="allgoods" Text="详情" runat="server"/>
</td></tr>
</table>
</itemtemplate>
</asp:datalist></form>


我想在购买按扭事件中获得datalist列表的莫一个ID,请各位高手帮忙!!
...全文
287 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
gsp365 2005-10-11
  • 打赏
  • 举报
回复
服务器端:

private void MyDataList_SelectedIndexChanged(object sender, System.EventArgs e)
下写入:
(控件类名)MyDataList.Items[MyDataList.SelectedIndex].FindControl("控件ID");
如:
(Button)MyDataList.Items[MyDataList.SelectedIndex].FindControl("buygoods")

赋值:
Button b1=(Button)MyDataList.Items[MyDataList.SelectedIndex].FindControl("buygoods")



private void MyDataList_EditCommand_1(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
下写入:

(Button)e.Item.FindControl("buygoods")
....

来获取控件名.

pmmx 2005-10-11
  • 打赏
  • 举报
回复
可以先绑定一个DataKeyField
也可以用第几列第几个控件的方法得到
gsp365 2005-10-11
  • 打赏
  • 举报
回复
客户端:

在HTML中</HEAD>前写入:

<script language="javaScript">

function clik()
{
document.all('TextBox1').value=event.srcElement.id;
}
document.onclick=clik;
</script>
guestt007 2005-10-11
  • 打赏
  • 举报
回复
哦,多谢gsp365(aaa)!!

结帖!
gsp365 2005-10-11
  • 打赏
  • 举报
回复
这就好办了!
将BUTTON 的COMMANDNAME 赋值为select;
那么:
在private void MyDataList_SelectedIndexChanged(object sender, System.EventArgs e)
下选中的是
id=selectedindex;

如果将BUTTON 的COMMANDNAME 赋值为其他如buy等:
那么在:
private void MyDataList_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
下:
if (e.CommandName=="buy")
{
id=e.Item.ItemIndex;
}
guestt007 2005-10-11
  • 打赏
  • 举报
回复
gsp365(aaa)
  你没明白我的意思,我在页面上用datalist来显示产品,为了方便用户购买产品,就在datalist中添加了购买和详情2个button.这样一来就在datalist中的每个产品下面都有了购买和详情按钮.
  
  现在问题是,当用户选中datalist中一件产品时,我怎么才能知道用户选择了哪件产品??

clxxj 2005-10-09
  • 打赏
  • 举报
回复
private void binddata()
{
daLsDeptType.DataKeyField = "ID";//在数据绑定时先设定datakey

...
}

private void daLsDeptType_UpdateCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{

string id=daLsDeptType.DataKeys[e.Item.ItemIndex];
//根据行索引和DATAKEY获取ID

}
clxxj 2005-10-09
  • 打赏
  • 举报
回复
客户端获取:

<%# DataBinder.Eval(Container.DataItem, "id") %>

服务端获取(以DATAGRID为例子):

int cur_i=MyDataList.SelectedIndex;
string key=CustomDataGrid1.DataKeys[cur_i].ToString();
guestt007 2005-10-09
  • 打赏
  • 举报
回复
clxxj(ChenSir之.Net外传)你给出的是如何绑定到数据库中的字段代码吧!

我只看懂你给出的"客户端获取"的代码,至于服务端获取的代码,我看得是一头雾水了.

能给出一个服务端获取的例子吗??

guestt007 2005-10-09
  • 打赏
  • 举报
回复
clxxj(ChenSir之.Net外传)有DataList控件的练习用的例题吗?

我邮箱是xxz0618@yahoo.com.cn

劳驾你给发一个,我仔细研究!!
guestt007 2005-10-08
  • 打赏
  • 举报
回复
真晕,居然没人给出正解!!
gsp365 2005-10-08
  • 打赏
  • 举报
回复
这个问题20点太少了!
先要清楚是客户端还是服务器?!
其次你想触发什么事件?
guestt007 2005-10-08
  • 打赏
  • 举报
回复
如果有代码的,请麻烦你发送到我的电子邮件中
xxz0618@yahoo.com.cn

在线等

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧