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

WF201305 2016-06-11 12:59:09


按钮编辑是在编辑datelist 模板时加的 现在是想通过点击编辑按钮 然后获取到图片中的社团名称,其中社团名称是用的一个label来显示的。代码如下:
<td>社团名称:</td>
<td>
<asp:Label ID="user_stname" runat="server" Text='<%# Eval("user_shetuan") %>'></asp:Label>
</td>

尝试了搜索到的内容如 调用datalist的 ItemCommand 事件 然后给编辑按钮定义 CommandName 值 将CommandName的值作为进行的操作的判断条件
if(e.CommandName=="bianji"){
int cmtid=int.parse(e.CommandArgument.ToString());
Label lb=(Label)e.Item.FindControl("user_stname")
Session["stname"]=la.ToString();
}
结果得到的Session["stname"]一直为空

或是下面的
foreach (DataListItem item in DataList1.Items) {
控件类型 s = DataList1.FIndControl("id") as 控件类型;
这里就可以对s 作相应的处理了
}
所取得的值都仍是为空 真心烦透了!!!!!不知道是哪里出了问题!谁能告诉我该怎么办!

还有我给代码顶部加了 EnableEventValidation="false" 这个应该不影响吧!
...全文
230 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
WF201305 2016-06-11
  • 打赏
  • 举报
回复
有两个panel 其中从xianshi panel中的datalist中取值后传递到xiugai panel中 同时xianshi False
WF201305 2016-06-11
  • 打赏
  • 举报
回复
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Configuration; using System.Data; using System.Data.SqlClient; public partial class huodongshenhe : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { daishenhePanel.Visible = true; xianshi.Visible = true; xiugai.Visible = false; string strConn = WebConfigurationManager.ConnectionStrings["stglxtConnectionString"].ConnectionString; SqlConnection con = new SqlConnection(strConn); DataSet ds = new DataSet(); con.Open(); SqlDataAdapter sqld = new SqlDataAdapter("SELECT user_shetuan,huodong_name,huodong_leixing,huodong_renshu,huodong_kaishi,huodong_jieshu,huodong_didian,huodong_jieshao FROM huodong_shenhe ", con); sqld.Fill(ds, "user"); DataTable dTable = ds.Tables["user"]; DataList2.DataSource = dTable; DataList2.DataBind(); con.Close(); con = null; } protected void Button1_Click(object sender, EventArgs e) { daishenhePanel.Visible = true; yitongguoPanel.Visible = false; weitongguoPanel.Visible = false; } protected void Button2_Click(object sender, EventArgs e) { daishenhePanel.Visible = false; yitongguoPanel.Visible = true; weitongguoPanel.Visible = false; } protected void Button3_Click(object sender, EventArgs e) { daishenhePanel.Visible = false; yitongguoPanel.Visible = false; weitongguoPanel.Visible = true; } protected void bianji_Click(object sender, EventArgs e) { xianshi.Visible = false; xiugai.Visible = true; } protected void DataList2_ItemCommand(object source, DataListCommandEventArgs e) { if (e.CommandName == "bianji") { foreach (DataListItem item in this.DataList2.Items) { ((Label)item.FindControl("user_stname")).Visible = false; string num = ((Label)e.Item.FindControl("user_stname")).Text; this.stname.Text = num; } } } }
WF201305 2016-06-11
  • 打赏
  • 举报
回复
<table cellspacing="0" class="auto-style1"> <tr> <td>活动审核页面</td> </tr> <tr> <td> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="待审核的活动" />     <asp:Button ID="Button2" runat="server" Text="已通过的活动" OnClick="Button2_Click" />    <asp:Button ID="Button3" runat="server" Text="未通过的活动" OnClick="Button3_Click" /> </td> </tr> <tr> <td> <asp:Panel ID="daishenhePanel" runat="server"> <center> <asp:Panel runat="server" ID="xianshi" Height="212px"> <asp:DataList ID="DataList2" runat="server" OnItemCommand="DataList2_ItemCommand"> <ItemTemplate> <table class="auto-style1"> <tr> <td>社团名称:</td> <td> <asp:Label ID="user_stname" runat="server" Text='<%# Eval("user_shetuan") %>'></asp:Label> </td> <td>活动名称:</td> <td> <asp:Label ID="huodong_name" runat="server" Text='<%# Eval("huodong_name") %>'></asp:Label> </td> <td>活动类型:</td> <td> <asp:Label ID="huodong_leixing" runat="server" Text='<%# Eval("huodong_leixing") %>'></asp:Label> </td> </tr> <tr> <td>开始时间:</td> <td> <asp:Label ID="huodong_kaishi" runat="server" Text='<%# Eval("huodong_kaishi") %>'></asp:Label> </td> <td>活动人数</td> <td> <asp:Label ID="huodong_renshu" runat="server" Text='<%# Eval("huodong_renshu") %>'></asp:Label> </td> <td>活动地点</td> <td> <asp:Label ID="huodong_didian" runat="server" Text='<%# Eval("huodong_didian") %>'></asp:Label> </td> </tr> <tr> <td>结束时间:</td> <td> <asp:Label ID="huodong_jieshu" runat="server" Text='<%# Eval("huodong_jieshu") %>'></asp:Label> </td> <td>活动介绍</td> <td colspan="3" rowspan="2"> <asp:Label ID="huodong_jieshao" runat="server" Text='<%# Eval("huodong_jieshao") %>'></asp:Label> </td> </tr> <tr> <td>理由</td> <td colspan="2"> <asp:TextBox ID="TextBox1" runat="server" Height="50px"></asp:TextBox> </td> </tr> <tr> <td colspan="2"> <asp:Button ID="jujue" runat="server" Text="拒绝" /> </td> <td colspan="2"> <asp:Button ID="tongguo" runat="server" Text="通过" /> </td> <td colspan="2"> <asp:Button ID="bianji" runat="server" CommandName="bianji" Text="编辑" OnClick="bianji_Click" /> </td> </tr> </table> </ItemTemplate> </asp:DataList> </asp:Panel> </center> <br /> <asp:Panel ID="xiugai" runat="server"> <center> <table class="auto-style9"> <tr> <td> 社团名称:</td> <td> <asp:Label ID="stname" runat="server" ></asp:Label> </td> <td>活动名称:</td> <td> <asp:Label ID="mingcheng1" runat="server" ></asp:Label> </td> <td>活动类型:</td> <td> <asp:Label ID="leixing1" runat="server" ></asp:Label> </td> </tr> <tr> <td>开始时间:</td> <td> <asp:Label ID="kaishi1" runat="server" ></asp:Label> </td> <td>活动人数:</td> <td> <asp:Label ID="renshu1" runat="server" ></asp:Label> </td> <td>活动地点:</td> <td> <asp:Label ID="didian1" runat="server"></asp:Label> </td> </tr> <tr> <td>结束时间:</td> <td> <asp:Label ID="jieshu1" runat="server" ></asp:Label> </td> <td>活动介绍:</td> <td colspan="3" rowspan="2"> <asp:Label ID="jieshao1" runat="server" ></asp:Label> </td> </tr> <tr> <td class="auto-style8">理由:</td> <td class="auto-style6" colspan="2"> <asp:TextBox ID="liyou1" runat="server" Height="53px" Width="137px"></asp:TextBox> </td> </tr> <tr> <td class="auto-style4" colspan="2"> </td> <td class="auto-style7"> <asp:Button ID="Button7" runat="server" Text="通过" /> </td> <td> <asp:Button ID="Button8" runat="server" Text="编辑" /> </td> </tr> </table> </center> </asp:Panel> </asp:Panel> <asp:Panel ID="yitongguoPanel" runat="server"> </asp:Panel> <asp:Panel ID="weitongguoPanel" runat="server"> </asp:Panel> </td> </tr> <tr> <td>1</td> </tr> </table>
  • 打赏
  • 举报
回复
注意,第二点中我说的是 bianji_Click 事件处理的逻辑。一般来说我们都在离触发事件“的控件最近的”那个事件来处理逻辑,尽量不去扩大化到其冒泡上层去处理事件。
  • 打赏
  • 举报
回复
不过,无论如何你使用自定义属性来获取值,在你有闲功夫的时候,还是要回到前一个 FindControl 的 bug 上去调试。因为那隐含着是一个深层次的技术问题。
  • 打赏
  • 举报
回复
首先,代码 e.Item.FindControl("user_stname") 应该能找到相应的 Label。如果找不到,那么说明你的程序中的 bug 不仅仅只是这一点,应该是隐藏着巨大的 bug,可能页面回发之后所有的状态都乱了或者丢了。 其次,个别的时候,你可以为控件自定义属性,绑定任意你需要的值。例如写
<asp:Button ID="bianji" runat="server" CommandName="bianji"  Text="编辑" OnClick="bianji_Click"  我要的='<%# Eval("user_shetuan") %>' />
那么就可以在你的代码中直接写
Button btn = (Button)sender;
string value = btn.Attributes["我要的"];
这就能取到自定义的属性值。此时就不用去别的地方去找了。
WF201305 2016-06-11
  • 打赏
  • 举报
回复
aspx页面代码: <asp:Panel ID="daishenhePanel" runat="server"> <center> <asp:Panel runat="server" ID="xianshi" Height="212px"> <asp:DataList ID="DataList2" runat="server" OnItemCommand="DataList2_ItemCommand"> <ItemTemplate> <table class="auto-style1"> <tr> <td>社团名称:</td> <td> <asp:Label ID="user_stname" runat="server" Text='<%# Eval("user_shetuan") %>'></asp:Label> </td> <td>活动名称:</td> <td> <asp:Label ID="huodong_name" runat="server" Text='<%# Eval("huodong_name") %>'></asp:Label> </td> <td>活动类型:</td> <td> <asp:Label ID="huodong_leixing" runat="server" Text='<%# Eval("huodong_leixing") %>'></asp:Label> </td> </tr> <tr> <td>开始时间:</td> <td> <asp:Label ID="huodong_kaishi" runat="server" Text='<%# Eval("huodong_kaishi") %>'></asp:Label> </td> <td>活动人数</td> <td> <asp:Label ID="huodong_renshu" runat="server" Text='<%# Eval("huodong_renshu") %>'></asp:Label> </td> <td>活动地点</td> <td> <asp:Label ID="huodong_didian" runat="server" Text='<%# Eval("huodong_didian") %>'></asp:Label> </td> </tr> <tr> <td>结束时间:</td> <td> <asp:Label ID="huodong_jieshu" runat="server" Text='<%# Eval("huodong_jieshu") %>'></asp:Label> </td> <td>活动介绍</td> <td colspan="3" rowspan="2"> <asp:Label ID="huodong_jieshao" runat="server" Text='<%# Eval("huodong_jieshao") %>'></asp:Label> </td> </tr> <tr> <td>理由</td> <td colspan="2"> <asp:TextBox ID="TextBox1" runat="server" Height="50px"></asp:TextBox> </td> </tr> <tr> <td colspan="2"> <asp:Button ID="jujue" runat="server" Text="拒绝" /> </td> <td colspan="2"> <asp:Button ID="tongguo" runat="server" Text="通过" /> </td> <td colspan="2"> <asp:Button ID="bianji" runat="server" CommandName="bianji" Text="编辑" OnClick="bianji_Click" /> </td> </tr> </table> </ItemTemplate> </asp:DataList> </asp:Panel>

62,041

社区成员

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

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

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

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