如题:
前台代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DataList ID="DataList1" runat="server" 
            onselectedindexchanged="DataList1_SelectedIndexChanged" >
            <HeaderTemplate>
                <table>
                    <tr>
                        <td>姓名</td>
                        <td>年纪</td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate >
                    <tr runat="server" >
                        <td><%#Eval("姓名")%></td>
                        <td><%#Eval("年龄")%></td>
                    </tr>
                
            </ItemTemplate>
            <FooterTemplate></table></FooterTemplate>
            
        </asp:DataList>
    </div>
    </form>
</body>
</html>
后台:public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            bind();
        }
    }
    protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
    {    }
    public void bind()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("姓名");
        dt.Columns.Add("年龄");
        DataRow dr = dt.NewRow();
        dr[0] = "张三";
        dr[1] = 12;
        dt.Rows.Add(dr);
        dr = dt.NewRow();
        dr[0] = "里斯";
        dr[1] = 21;
        dt.Rows.Add(dr);
        DataList1.DataSource = dt;
        DataList1.DataBind();
    }
}
问题:调试时DataList1_SelectedIndexChanged在点击一行数据时方法不会触发。
我想要的结果是:点击DataList中每一行的数据就要触发DataList1_SelectedIndexChanged事件!

解决方案 »

  1.   

    你缺少设置一个属性:AutoPostBack=true
      

  2.   

    2楼的这位朋友,DataList 控件没有AutoPostBack属性,不过我以前就手动添加了AutoPostBack=true这句话,但结果还是一样的,解决不了问题。不过还是谢谢你的回答!
      

  3.   

    用的事件不对,应该咋ItemDataBound事件或者追加一个button来实现你的 功能。
      

  4.   

    5楼的朋友,ItemDataBound不是在行绑定数据的时候触发的吗,而我现在要实现的功能是在数据绑定完后,点击数据中的任意一行触发的事件啊
      

  5.   

    试试AutoPostBack=true 之前我的单选按钮不触发也是加了这个才行
      

  6.   

          
    用OnItemCommand事件试试
     protected void DList_ItemCommand(object source, DataListCommandEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.SelectedItem || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                   //给每行添加一个事件
                }
            }比如可以弄个隐藏的checkbox