请教高手一个关于datalist中嵌套按钮的问题 急~~

龙二伤 2009-04-28 10:52:00
小弟要做一个留言板,用datalist做,想在里面嵌套一个按钮,问题描述如下:

datalist显示的每条记录有4项: 留言人、留言时间、留言内容、回复留言的按钮
在datalist下方有文本框可以回复留言

我现在的需求:当我按 回复留言 的按钮时,我希望能取出datalist中相应的那一行的 留言人 项的值,
然后赋给下面的文本框,这样就能快捷回复,不用手动去写名字。

目前问题是不知道这个button具体该怎么搞,在databind里面有 Command Argument 属性,可以绑定到
datalist中的项,这个有什么用?和我的需求有关系吗?

请给小弟一个完整点详细点的解答。
...全文
111 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙二伤 2009-04-29
  • 打赏
  • 举报
回复
解决了,谢谢各位高手哈!
xiaozhihongxzh 2009-04-28
  • 打赏
  • 举报
回复
设button的Command属性为Edit
再在DataList的EditCommand中写代码
中年秃头大叔 2009-04-28
  • 打赏
  • 举报
回复
前台:
<asp:DataList ID="listcontent" runat="server" Font-Italic="False" Font-Overline="False" RepeatDirection="Horizontal" ShowFooter="False" DataKeyField="id"//id发表留言ID
Width="100%" HorizontalAlign="Center"
onitemcommand="listcontent_ItemCommand">
<ItemTemplate>
<asp:Button ID="btnadd" runat="server" CommandName="add" Width="200px" Text="发表"/>
</ItemTemplate>
</asp:DataList>

后台:
protected void listcontent_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "add")
{
//执行内容。
string strID=e.CommandArgument.ToString().Trim()//e.CommandArgument就是留言ID。
下面代码自己写。找到这个人的姓名,赋值给textbox的名字了。
}
}
中年秃头大叔 2009-04-28
  • 打赏
  • 举报
回复
<asp:DataList ID="listcontent" runat="server" Font-Italic="False" Font-Overline="False" RepeatDirection="Horizontal" ShowFooter="False" DataKeyField="id"//id发表留言ID
Width="100%" HorizontalAlign="Center"
onitemcommand="listcontent_ItemCommand">
<ItemTemplate>
<asp:Button ID="btnadd" runat="server" CommandName="add" Width="200px" Text="发表"/>
</ItemTemplate>
</asp:DataList>
protected void listcontent_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "add")
{
//执行内容。
string strID=e.CommandArgument.ToString().Trim()//e.CommandArgument就是留言ID。
下面代码自己写。找到这个人的姓名,赋值给textbox的名字了。
}
}
龙二伤 2009-04-28
  • 打赏
  • 举报
回复
button 的 onclick 事件中需要写什么吗?

onclick_()
{
textbox1.text = ?;
}

是不是这样赋值啊?
cpp2017 2009-04-28
  • 打赏
  • 举报
回复
CommandArgument是可以传参数到后台的.

<asp:Button CommandArgument='<%#Eval("ID")%'


在DataList的ItemCommand事件中


e.CommandArgument就是你传进来的id
gdjlc 2009-04-28
  • 打赏
  • 举报
回复
datalist:
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="xg" CommandArgument=' <%#Eval("ID")%>' >修改 </asp:LinkButton>

后台获取ID代码
int e= int.Parse(e.CommandArgument.ToString());
伤心的小水沟 2009-04-28
  • 打赏
  • 举报
回复



Command Argument 可以获取到你指定得控件
阿非 2009-04-28
  • 打赏
  • 举报
回复

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DatalistDemo.aspx.cs" Inherits="temp_DatalistDemo" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<table>
<tr><td>姓名</td><td>时间</td><td>内容</td><td>回复</td></tr>
<asp:Repeater ID='rp' runat="server">
<AlternatingItemTemplate>
<tr><td><asp:Literal ID="litName" runat="server" Text='<%#Eval("Name") %>'></asp:Literal></td><td><%#Eval("Date") %></td><td><%#Eval("Content") %></td><td><asp:Button ID="btn" runat="server" Text="选择" OnClick="btn_Click" /></td></tr>
</AlternatingItemTemplate>
<ItemTemplate>
<tr><td><asp:Literal ID="litName" runat="server" Text='<%#Eval("Name") %>'></asp:Literal></td><td><%#Eval("Date") %></td><td><%#Eval("Content") %></td><td><asp:Button ID="btn" runat="server" Text="选择" OnClick="btn_Click" /></td></tr>
</ItemTemplate>
</asp:Repeater>
</table>
姓名:<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox><br />
内容:<asp:TextBox ID="txtContent" TextMode="MultiLine" runat="server"></asp:TextBox>
</form>
</body>
</html>



using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class temp_DatalistDemo : System.Web.UI.Page
{
private DataTable getDateTable()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Name", typeof(String)));
dt.Columns.Add(new DataColumn("Date", typeof(String)));
dt.Columns.Add(new DataColumn("Content", typeof(String)));
DataRow dr;
dr = dt.NewRow();
dr[0] = "王XX";
dr[1] = "2009-01-05";
dr[2] = "岗位工资sdfaaa";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "刘XX";
dr[1] = "2009-02-15";
dr[2] = "aaaaaaaaaaaaaa";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "赵XX";
dr[1] = "2008-11-20";
dr[2] = "ccccccccccccc";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "李XX";
dr[1] = "2009-01-25";
dr[2] = "eeeeeeeeeeeeeeeeeeeee";
dt.Rows.Add(dr);

return dt;
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
rp.DataSource = getDateTable();
rp.DataBind();
}

}
protected void btn_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
Literal lit = btn.NamingContainer.FindControl("litName") as Literal;
if (lit != null)
{
txtUserName.Text = lit.Text;
}
}
}



本来是准备用DataList的,但后来觉得Repeater 一样能实现效果,并且更好控制样式

62,268

社区成员

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

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

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

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