按钮编辑是在编辑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"  这个应该不影响吧!

解决方案 »

  1.   

    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>
      

  2.   

    首先,代码 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["我要的"];这就能取到自定义的属性值。此时就不用去别的地方去找了。
      

  3.   

    不过,无论如何你使用自定义属性来获取值,在你有闲功夫的时候,还是要回到前一个 FindControl 的 bug 上去调试。因为那隐含着是一个深层次的技术问题。
      

  4.   

    注意,第二点中我说的是 bianji_Click 事件处理的逻辑。一般来说我们都在离触发事件“的控件最近的”那个事件来处理逻辑,尽量不去扩大化到其冒泡上层去处理事件。
      

  5.   

     <table cellspacing="0" class="auto-style1">
                <tr>
                    <td>活动审核页面</td>
                </tr>
                <tr>
                    <td>
                        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="待审核的活动" />
    &nbsp;&nbsp;&nbsp;
                        <asp:Button ID="Button2" runat="server" Text="已通过的活动" OnClick="Button2_Click" />
    &nbsp;&nbsp;
                        <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">&nbsp;</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>
      

  6.   

    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;
                    
                }
            }
        }
    }
      

  7.   

    有两个panel  其中从xianshi panel中的datalist中取值后传递到xiugai panel中 同时xianshi False