如何从datalist里去某一数据?高分希望回答 我做了个留言板,用datalist来显示全部留言,在ItemTemple编辑状态下拉了个textbox用来绑定了留言的标题和拉了个button,想按了这个button以后就获得这条留言的textbox里标题的字符串。具体应该怎样做啊?因为我是初学者,希望高手们可以把代码写得详细点,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一步:把BUTTON写进ItemTemple编辑状态(这个你应该会吧)然后设置在ASPX中设置BUTTON的属性 CommandName="edit"(为什么这么写呢,因为DATALIST中有有一个事件EDITCOMMAND,这个事件你在DATALIST的属性那里就能找到,像闪电的那个,这个事件会执行BUTTON按钮,至于为什么会执行,我也说不上来)编辑完肯定得有更新按钮了,这个按钮在EDITTEMPLE中,再设置BUTTON的属性 CommandName="update",同理这个会执行DATALIST中的UPDATECOMMAND第二步:双击DATALIST里的EDITCOMMAND(好象是什么写来的)到CS代码中, //点击编辑按钮时引发的命令 protected void datalist控件名_EditCommand(object source, DataListCommandEventArgs e) { this.datalist.EditItemIndex = e.Item.ItemIndex; }//意思是,得到你要编辑的行第三步:双击DATALIST里的UPDATECOMMAND(好象是什么写来的)到CS代码中,protected void datalist控件名_UpdateCommand(object source, DataListCommandEventArgs e) { TextBox tb = (TextBox)this.datalist1.Items[e.Item.ItemIndex].FindControl("你的TEXTBOX名称")//代码意思就是说找到要编辑的行中的TEXTBOX控件 string txt=tb.Text.ToString();} 第一步:把BUTTON写进ItemTemple编辑状态(这个你应该会吧)然后设置在ASPX中设置BUTTON的属性 CommandName="edit"(为什么这么写呢,因为DATALIST中有有一个事件EDITCOMMAND,这个事件你在DATALIST的属性那里就能找到,像闪电的那个,这个事件会执行BUTTON按钮,至于为什么会执行,我也说不上来)编辑完肯定得有更新按钮了,这个按钮在EDITTEMPLE中,再设置BUTTON的属性 CommandName="update",同理这个会执行DATALIST中的UPDATECOMMAND第二步:双击DATALIST里的EDITCOMMAND(好象是什么写来的)到CS代码中, //点击编辑按钮时引发的命令 protected void datalist控件名_EditCommand(object source, DataListCommandEventArgs e) { this.datalist.EditItemIndex = e.Item.ItemIndex; }//意思是,得到你要编辑的行第三步:双击DATALIST里的UPDATECOMMAND(好象是什么写来的)到CS代码中,protected void datalist控件名_UpdateCommand(object source, DataListCommandEventArgs e) { TextBox tb = (TextBox)this.datalist1.Items[e.Item.ItemIndex].FindControl("你的TEXTBOX名称")//代码意思就是说找到要编辑的行中的TEXTBOX控件 string txt=tb.Text.ToString();} 竟然飞楼了晕了卡一下不好意思我再补充一下在ItemTemple和EDITTEMPLE中的两个BUTTON按钮是不一个BUTTON按钮(在这里不推荐用BUTTON,而直接用<a href=""></a>,因为BUTTON按钮在这里毫无用处)在DATALIST的事件中(属性栏闪电图标那个)要在EDITCOMMAND里输入edit同理updatecommand里也要输入update这样才会响应你单击的事件输入完以后在事件右面双击就会进入CS代码然后按照上面的代码写就可以了 写了代码,慢了,道理就是二楼的~<%@ Page Language="C#" %><%@ Import Namespace="System.Data" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> DataTable dt = new DataTable(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { dt.Columns.Add("title"); for (int i = 0; i < 10; i++) { DataRow dr = dt.NewRow(); dr[0] = "title" + i; dt.Rows.Add(dr); } Session.Add("dt", dt); this.DataList1.DataSource = dt; this.DataList1.DataBind(); } else { dt = (DataTable)Session["dt"]; } } protected void DataList1_EditCommand(object source, DataListCommandEventArgs e) { this.DataList1.EditItemIndex = e.Item.ItemIndex; this.DataList1.DataSource = dt; this.DataList1.DataBind(); } protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e) { this.Label1.Text = ((TextBox)e.Item.FindControl("txtTitle")).Text.Trim(); }</script><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>无标题页</title></head><body> <form id="form1" runat="server"> <div> <asp:Label ID="Label1" runat="server"></asp:Label> <asp:DataList ID="DataList1" runat="server" OnEditCommand="DataList1_EditCommand" OnUpdateCommand="DataList1_UpdateCommand"> <ItemTemplate> <asp:Label ID="lblTitle" runat="server" Text="<%#Bind('title') %>"></asp:Label><asp:Button ID="btnEdit" runat="server" CommandName="Edit" Text="Edit" /> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtTitle" runat="server" Text="<%#Bind('title') %>"></asp:TextBox><asp:Button ID="btnShowTitle" runat="server" Text="Show Title" CommandName="Update" /> </EditItemTemplate> </asp:DataList> </div> </form></body></html> asp.net夜话之八:数据绑定控件 在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。http://blog.csdn.net/zhoufoxcn/archive/2008/10/24/3134608.aspx 奇怪的问题 HttpPostedFile上传方式 与 自定义大文件上传控件的共存问题 fileupload选择图片后立即显示 如何将 response.binarywrite 或自已画的BMP对象变成一个URL输出,显示在一个IMAGE控件里. 关于FLASH截图的问题 我们的工作组开发完成了一套比较好的基于.net的OA系统. 帮忙,大家来看看 ASP.Net2014版特供教程要发布了,期待呀! GridView使用RadioButton联动.请教高手,100分相赠! 怎么样在接收传递值进行判断是否有值? treeview RequiredFieldValidator控件使用问题
然后设置在ASPX中设置BUTTON的属性 CommandName="edit"(为什么这么写呢,因为DATALIST中有有一个事件EDITCOMMAND,这个事件你在DATALIST的属性那里就能找到,像闪电的那个,这个事件会执行BUTTON按钮,至于为什么会执行,我也说不上来)
编辑完肯定得有更新按钮了,这个按钮在EDITTEMPLE中,再设置BUTTON的属性 CommandName="update",同理这个会执行DATALIST中的UPDATECOMMAND
第二步:双击DATALIST里的EDITCOMMAND(好象是什么写来的)到CS代码中,
//点击编辑按钮时引发的命令
protected void datalist控件名_EditCommand(object source, DataListCommandEventArgs e)
{
this.datalist.EditItemIndex = e.Item.ItemIndex;
}
//意思是,得到你要编辑的行
第三步:双击DATALIST里的UPDATECOMMAND(好象是什么写来的)到CS代码中,
protected void datalist控件名_UpdateCommand(object source, DataListCommandEventArgs e)
{
TextBox tb = (TextBox)this.datalist1.Items[e.Item.ItemIndex].FindControl("你的TEXTBOX名称")
//代码意思就是说找到要编辑的行中的TEXTBOX控件
string txt=tb.Text.ToString();
}
然后设置在ASPX中设置BUTTON的属性 CommandName="edit"(为什么这么写呢,因为DATALIST中有有一个事件EDITCOMMAND,这个事件你在DATALIST的属性那里就能找到,像闪电的那个,这个事件会执行BUTTON按钮,至于为什么会执行,我也说不上来)
编辑完肯定得有更新按钮了,这个按钮在EDITTEMPLE中,再设置BUTTON的属性 CommandName="update",同理这个会执行DATALIST中的UPDATECOMMAND
第二步:双击DATALIST里的EDITCOMMAND(好象是什么写来的)到CS代码中,
//点击编辑按钮时引发的命令
protected void datalist控件名_EditCommand(object source, DataListCommandEventArgs e)
{
this.datalist.EditItemIndex = e.Item.ItemIndex;
}
//意思是,得到你要编辑的行
第三步:双击DATALIST里的UPDATECOMMAND(好象是什么写来的)到CS代码中,
protected void datalist控件名_UpdateCommand(object source, DataListCommandEventArgs e)
{
TextBox tb = (TextBox)this.datalist1.Items[e.Item.ItemIndex].FindControl("你的TEXTBOX名称")
//代码意思就是说找到要编辑的行中的TEXTBOX控件
string txt=tb.Text.ToString();
}
晕了
卡一下不好意思我再补充一下
在ItemTemple和EDITTEMPLE中的两个BUTTON按钮是不一个BUTTON按钮
(在这里不推荐用BUTTON,而直接用<a href=""></a>,因为BUTTON按钮在这里毫无用处)在DATALIST的事件中(属性栏闪电图标那个)
要在EDITCOMMAND里输入edit
同理updatecommand里也要输入update
这样才会响应你单击的事件输入完以后在事件右面双击
就会进入CS代码
然后按照上面的代码写就可以了
<%@ Import Namespace="System.Data" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dt.Columns.Add("title");
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr[0] = "title" + i;
dt.Rows.Add(dr);
}
Session.Add("dt", dt);
this.DataList1.DataSource = dt;
this.DataList1.DataBind();
}
else
{
dt = (DataTable)Session["dt"];
}
} protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex = e.Item.ItemIndex;
this.DataList1.DataSource = dt;
this.DataList1.DataBind();
} protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
this.Label1.Text = ((TextBox)e.Item.FindControl("txtTitle")).Text.Trim();
}
</script><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:DataList ID="DataList1" runat="server" OnEditCommand="DataList1_EditCommand" OnUpdateCommand="DataList1_UpdateCommand">
<ItemTemplate>
<asp:Label ID="lblTitle" runat="server" Text="<%#Bind('title') %>"></asp:Label><asp:Button ID="btnEdit" runat="server" CommandName="Edit" Text="Edit" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtTitle" runat="server" Text="<%#Bind('title') %>"></asp:TextBox><asp:Button ID="btnShowTitle" runat="server" Text="Show Title" CommandName="Update" />
</EditItemTemplate>
</asp:DataList>
</div>
</form>
</body>
</html>
在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。
http://blog.csdn.net/zhoufoxcn/archive/2008/10/24/3134608.aspx