ASP.net 怎么取datalist中子控件的值!!

问题描述

按钮编辑是在编辑datelist模板时加的现在是想通过点击编辑按钮然后获取到图片中的社团名称,其中社团名称是用的一个label来显示的。代码如下:<td>社团名称:</td><td><asp:LabelID="user_stname"runat="server"Text='<%#Eval("user_shetuan")%>'></asp:Label></td>尝试了搜索到的内容如调用datalist的ItemCommand事件然后给编辑按钮定义CommandName值将CommandName的值作为进行的操作的判断条件if(e.CommandName=="bianji"){intcmtid=int.parse(e.CommandArgument.ToString());Labellb=(Label)e.Item.FindControl("user_stname")Session["stname"]=la.ToString();}结果得到的Session["stname"]一直为空或是下面的foreach(DataListItemiteminDataList1.Items){控件类型s=DataList1.FIndControl("id")as控件类型;这里就可以对s作相应的处理了}所取得的值都仍是为空真心烦透了!!!!!不知道是哪里出了问题!谁能告诉我该怎么办!还有我给代码顶部加了EnableEventValidation="false"这个应该不影响吧!

解决方案

解决方案二:
aspx页面代码:<asp:PanelID="daishenhePanel"runat="server"><center><asp:Panelrunat="server"ID="xianshi"Height="212px"><asp:DataListID="DataList2"runat="server"OnItemCommand="DataList2_ItemCommand"><ItemTemplate><tableclass="auto-style1"><tr><td>社团名称:</td><td><asp:LabelID="user_stname"runat="server"Text='<%#Eval("user_shetuan")%>'></asp:Label></td><td>活动名称:</td><td><asp:LabelID="huodong_name"runat="server"Text='<%#Eval("huodong_name")%>'></asp:Label></td><td>活动类型:</td><td><asp:LabelID="huodong_leixing"runat="server"Text='<%#Eval("huodong_leixing")%>'></asp:Label></td></tr><tr><td>开始时间:</td><td><asp:LabelID="huodong_kaishi"runat="server"Text='<%#Eval("huodong_kaishi")%>'></asp:Label></td><td>活动人数</td><td><asp:LabelID="huodong_renshu"runat="server"Text='<%#Eval("huodong_renshu")%>'></asp:Label></td><td>活动地点</td><td><asp:LabelID="huodong_didian"runat="server"Text='<%#Eval("huodong_didian")%>'></asp:Label></td></tr><tr><td>结束时间:</td><td><asp:LabelID="huodong_jieshu"runat="server"Text='<%#Eval("huodong_jieshu")%>'></asp:Label></td><td>活动介绍</td><tdcolspan="3"rowspan="2"><asp:LabelID="huodong_jieshao"runat="server"Text='<%#Eval("huodong_jieshao")%>'></asp:Label></td></tr><tr><td>理由</td><tdcolspan="2"><asp:TextBoxID="TextBox1"runat="server"Height="50px"></asp:TextBox></td></tr><tr><tdcolspan="2"><asp:ButtonID="jujue"runat="server"Text="拒绝"/></td><tdcolspan="2"><asp:ButtonID="tongguo"runat="server"Text="通过"/></td><tdcolspan="2"><asp:ButtonID="bianji"runat="server"CommandName="bianji"Text="编辑"OnClick="bianji_Click"/></td></tr></table></ItemTemplate></asp:DataList></asp:Panel>
解决方案三:
首先,代码e.Item.FindControl("user_stname")应该能找到相应的Label。如果找不到,那么说明你的程序中的bug不仅仅只是这一点,应该是隐藏着巨大的bug,可能页面回发之后所有的状态都乱了或者丢了。其次,个别的时候,你可以为控件自定义属性,绑定任意你需要的值。例如写<asp:ButtonID="bianji"runat="server"CommandName="bianji"Text="编辑"OnClick="bianji_Click"我要的='<%#Eval("user_shetuan")%>'/>

那么就可以在你的代码中直接写Buttonbtn=(Button)sender;stringvalue=btn.Attributes["我要的"];

这就能取到自定义的属性值。此时就不用去别的地方去找了。
解决方案四:
不过,无论如何你使用自定义属性来获取值,在你有闲功夫的时候,还是要回到前一个FindControl的bug上去调试。因为那隐含着是一个深层次的技术问题。
解决方案五:
注意,第二点中我说的是bianji_Click事件处理的逻辑。一般来说我们都在离触发事件“的控件最近的”那个事件来处理逻辑,尽量不去扩大化到其冒泡上层去处理事件。
解决方案六:
<tablecellspacing="0"class="auto-style1"><tr><td>活动审核页面</td></tr><tr><td><asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="待审核的活动"/>&nbsp;&nbsp;&nbsp;<asp:ButtonID="Button2"runat="server"Text="已通过的活动"OnClick="Button2_Click"/>&nbsp;&nbsp;<asp:ButtonID="Button3"runat="server"Text="未通过的活动"OnClick="Button3_Click"/></td></tr><tr><td><asp:PanelID="daishenhePanel"runat="server"><center><asp:Panelrunat="server"ID="xianshi"Height="212px"><asp:DataListID="DataList2"runat="server"OnItemCommand="DataList2_ItemCommand"><ItemTemplate><tableclass="auto-style1"><tr><td>社团名称:</td><td><asp:LabelID="user_stname"runat="server"Text='<%#Eval("user_shetuan")%>'></asp:Label></td><td>活动名称:</td><td><asp:LabelID="huodong_name"runat="server"Text='<%#Eval("huodong_name")%>'></asp:Label></td><td>活动类型:</td><td><asp:LabelID="huodong_leixing"runat="server"Text='<%#Eval("huodong_leixing")%>'></asp:Label></td></tr><tr><td>开始时间:</td><td><asp:LabelID="huodong_kaishi"runat="server"Text='<%#Eval("huodong_kaishi")%>'></asp:Label></td><td>活动人数</td><td><asp:LabelID="huodong_renshu"runat="server"Text='<%#Eval("huodong_renshu")%>'></asp:Label></td><td>活动地点</td><td><asp:LabelID="huodong_didian"runat="server"Text='<%#Eval("huodong_didian")%>'></asp:Label></td></tr><tr><td>结束时间:</td><td><asp:LabelID="huodong_jieshu"runat="server"Text='<%#Eval("huodong_jieshu")%>'></asp:Label></td><td>活动介绍</td><tdcolspan="3"rowspan="2"><asp:LabelID="huodong_jieshao"runat="server"Text='<%#Eval("huodong_jieshao")%>'></asp:Label></td></tr><tr><td>理由</td><tdcolspan="2"><asp:TextBoxID="TextBox1"runat="server"Height="50px"></asp:TextBox></td></tr><tr><tdcolspan="2"><asp:ButtonID="jujue"runat="server"Text="拒绝"/></td><tdcolspan="2"><asp:ButtonID="tongguo"runat="server"Text="通过"/></td><tdcolspan="2"><asp:ButtonID="bianji"runat="server"CommandName="bianji"Text="编辑"OnClick="bianji_Click"/></td></tr></table></ItemTemplate></asp:DataList></asp:Panel></center><br/><asp:PanelID="xiugai"runat="server"><center><tableclass="auto-style9"><tr><td>社团名称:</td><td><asp:LabelID="stname"runat="server"></asp:Label></td><td>活动名称:</td><td><asp:LabelID="mingcheng1"runat="server"></asp:Label></td><td>活动类型:</td><td><asp:LabelID="leixing1"runat="server"></asp:Label></td></tr><tr><td>开始时间:</td><td><asp:LabelID="kaishi1"runat="server"></asp:Label></td><td>活动人数:</td><td><asp:LabelID="renshu1"runat="server"></asp:Label></td><td>活动地点:</td><td><asp:LabelID="didian1"runat="server"></asp:Label></td></tr><tr><td>结束时间:</td><td><asp:LabelID="jieshu1"runat="server"></asp:Label></td><td>活动介绍:</td><tdcolspan="3"rowspan="2"><asp:LabelID="jieshao1"runat="server"></asp:Label></td></tr><tr><tdclass="auto-style8">理由:</td><tdclass="auto-style6"colspan="2"><asp:TextBoxID="liyou1"runat="server"Height="53px"Width="137px"></asp:TextBox></td></tr><tr><tdclass="auto-style4"colspan="2">&nbsp;</td><tdclass="auto-style7"><asp:ButtonID="Button7"runat="server"Text="通过"/></td><td><asp:ButtonID="Button8"runat="server"Text="编辑"/></td></tr></table></center></asp:Panel></asp:Panel><asp:PanelID="yitongguoPanel"runat="server"></asp:Panel><asp:PanelID="weitongguoPanel"runat="server"></asp:Panel></td></tr><tr><td>1</td></tr></table>
解决方案七:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.Configuration;usingSystem.Data;usingSystem.Data.SqlClient;publicpartialclasshuodongshenhe:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){daishenhePanel.Visible=true;xianshi.Visible=true;xiugai.Visible=false;stringstrConn=WebConfigurationManager.ConnectionStrings["stglxtConnectionString"].ConnectionString;SqlConnectioncon=newSqlConnection(strConn);DataSetds=newDataSet();con.Open();SqlDataAdaptersqld=newSqlDataAdapter("SELECTuser_shetuan,huodong_name,huodong_leixing,huodong_renshu,huodong_kaishi,huodong_jieshu,huodong_didian,huodong_jieshaoFROMhuodong_shenhe",con);sqld.Fill(ds,"user");DataTabledTable=ds.Tables["user"];DataList2.DataSource=dTable;DataList2.DataBind();con.Close();con=null;}protectedvoidButton1_Click(objectsender,EventArgse){daishenhePanel.Visible=true;yitongguoPanel.Visible=false;weitongguoPanel.Visible=false;}protectedvoidButton2_Click(objectsender,EventArgse){daishenhePanel.Visible=false;yitongguoPanel.Visible=true;weitongguoPanel.Visible=false;}protectedvoidButton3_Click(objectsender,EventArgse){daishenhePanel.Visible=false;yitongguoPanel.Visible=false;weitongguoPanel.Visible=true;}protectedvoidbianji_Click(objectsender,EventArgse){xianshi.Visible=false;xiugai.Visible=true;}protectedvoidDataList2_ItemCommand(objectsource,DataListCommandEventArgse){if(e.CommandName=="bianji"){foreach(DataListItemiteminthis.DataList2.Items){((Label)item.FindControl("user_stname")).Visible=false;stringnum=((Label)e.Item.FindControl("user_stname")).Text;this.stname.Text=num;}}}}
解决方案八:
有两个panel其中从xianshipanel中的datalist中取值后传递到xiugaipanel中同时xianshiFalse

时间: 2024-10-31 18:00:04

ASP.net 怎么取datalist中子控件的值!!的相关文章

asp.Net JS取母板页控件值的简单方法

这篇文章介绍了asp.Net JS取母板页控件值的简单方法,有需要的朋友可以参考一下   复制代码 代码如下: <script type="text/javascript" language="javascript">        function Check() {            var text = parent.document.getElementById('<%=HiddenField1.ClientID %>');  /

asp.Net JS取母板页控件值的简单方法_实用技巧

复制代码 代码如下: <script type="text/javascript" language="javascript">        function Check() {            var text = parent.document.getElementById('<%=HiddenField1.ClientID %>');  //如有母板页+pardent. ,普通取值不用加                if (c

javascript-asp.net后台获取前台file控件的值

问题描述 asp.net后台获取前台file控件的值 在asp.net前台使用js函数添加一个file控件(html),现在想在后台获取到前台js添加的file控件的值,使用HttpFileCollection files = HttpContext.Current.Request.Files; 后,必须要在前台添加一个fileupload服务器控件,否则获取不到,什么原理??有人能解释一下吗?? 解决方案 因为你不加服务器端fileupload,表单是不会添加 enctype="multipa

ASP.NET 2.0之ObjectDataSourc控件

asp.net|object|控件 学习asp.net2.0有一段时间了,我不是从1.1开始的,所以,也说不出2.0相对于1.1来讲有多大的变化或是在操作上有多大的便利,我这里只把我学习2.0的一些小经验与大家分享. 2.0中有一个ObjectDataSource数据源控件,通过它,可以把中间层或其它层的数据绑定到dropdownlist/datalist/repeater/gridview等数据控件中,为什么这里只ObjectDataSource而不提SqlDataSource或其它的数据源控

ASP.NET 2.0 和数据绑定控件:新的角度,新的做法

asp.net|控件|数据 适用于:Microsoft ASP.NET 1.xMicrosoft ASP.NET 2.0 摘要:了解 ASP.NET 2.0 中的用于生成自定义数据绑定控件的工具是如何演变的.   本页内容 为什么需要新的数据源模型  ASP.NET 2.0 中的数据绑定控件  分析要点  数据绑定机制   列表控件  HeadlineList 示例控件  管理自定义集合  关于复合控件的一点讨论  小结 为什么需要新的数据源模型数据绑定是开发人员在 ASP.NET 1.x 中发

ASP.NET 2.0的AccessDataSource控件

ASP.NET 2.0包含了AccessDataSource控件,用来从Access数据库中将数据提 取至ASP.NET 2.0(.aspx)页面.这个控件拥有的属性很简单.AccessDataSource 的最重要的属性是DataFile属性,用来指向硬盘上MDB文件的路径. AccessDataSource拥有的其他属性还有SelectCommand,用来设定一个显示需要 返回的结果集(表和列)的语句.SelectCommand必须使用SQL语法来定义. 在VWD中,可以用两种方式来添加Ac

如何获取DataList中Label控件的值?

问题描述 如何获取DataList中Label控件的值?protectedvoidDataList1_ItemDataBound(objectsender,DataListItemEventArgse){Labellbl=(Label)e.Item.FindControl("Label1");lbl.Text="IamLabel1";}我觉得这样可以的,可是在2.0里运行就是得不到任何值,这到底应该怎么解决呢,我在DataList中放置了一个Label控件, 解决方

ASP.NET中HiddenField隐藏域控件的使用方法_基础应用

HiddenField控件的作用简单的说是用于存储需要在向服务器的发送间保持的值.它作为 <input type= "hidden"/> 元素呈现,并且通过添加runat="server"就可以使它成为标准的HTML服务器控件.下面列出的是ASP.NET HiddenField Web服务器控件可以使用的属性和事件.   复制代码 代码如下: <asp:HiddenField     EnableTheming="True|False&q

ASP.NET2.0中的AccessDataSource控件

access|asp.net|控件 ASP.NET 2.0包含了AccessDataSource控件,用来从Access数据库中将数据提取至ASP.NET 2.0(.aspx)页面.这个控件拥有的属性很简单.AccessDataSource的最重要的属性是DataFile属性,用来指向硬盘上MDB文件的路径.AccessDataSource拥有的其他属性还有SelectCommand,用来设定一个显示需要返回的结果集(表和列)的语句.SelectCommand必须使用SQL语法来定义. 在VWD