我在<ItemTemplate>中加入了一个button控件,我想点一在另一个label中显示我要显示的内容,书中的代码是这样
在DataList_ItemCommand处理全程中
if(e.CommandName.ToLower()=="show")//show是button中CommandName属性

   Label1.text="something";

为什么点了以后没有反应,请指教。在线等了

解决方案 »

  1.   

    得加到button  onclick事件代码中~
      

  2.   

    你可能没有注册他的事件
    这需要在DATALIST的另一个事件好象是ITEMCREATE事件
      

  3.   

    你要设置button的CommandName="show"
      

  4.   

    你把DataList的ItemCommand事件和DataList_ItemCommand事件处理程序关联起来了吗?帖出更多的代码看看。
      

  5.   

    陕北大大说的对,因为我也出现过这样的事,你看下datalist属性的事件栏刊itemcommand是否为空
      

  6.   

    是啊 ,可以去HTML视图下对DataList添加事件。
      

  7.   

    <asp:datalist id="dl" style="Z-INDEX: 101; LEFT: 88px; POSITION: absolute; TOP: 104px" runat="server" Width="344px" Height="56px">
    <HeaderTemplate>
    <TABLE id="Table7" cellSpacing="1" cellPadding="1" width="100%" bgColor="#cc99cc" border="1">
    <TR>
    <TD width="60">用户名</TD>
    <TD width="250">用户Email</TD>
    <TD width="70">显示信息</TD>
    </TR>
    </TABLE>
    </HeaderTemplate>
    <ItemTemplate>
    <TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" align="left" border="1">
    <TR>
    <TD align="left" width="60">
    <asp:Label id=UserName runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "UserName") %>'>
    </asp:Label></TD>
    <TD align="left" width="250">
    <asp:Label id=CompanyName runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Email") %>'>
    </asp:Label></TD>
    <TD align="right" width="70">
    <asp:Button id="BtnShowText" runat="server" Text="显示" CommandName="show"></asp:Button></TD>
    </TR>
    </TABLE>
    </ItemTemplate>
    </asp:datalist><asp:label id="Label1" style="Z-INDEX: 102; LEFT: 536px; POSITION: absolute; TOP: 320px" runat="server" Width="184px" Height="48px">Label</asp:label>上面是HTML代码,下面是DataList_ItemCommand事件
    private void dl_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
    {

    Label1.Text="dkjfskljfskljf";
    if(e.CommandName.ToLower()=="show")
    {
    Label customer=(Label)e.Item.FindControl("UserName");
    Label company=(Label)e.Item.FindControl("CompanyName");
    if(customer!=null&& company!=null){Label1.Text=customer.Text+" "+company.Text;}
    }
    }
    DataList属性事件页中的ItemCommand项对应函数dl_ItemCommand()
    Button属性中的commandName也是"show"
    请大家再帮着看看,谢
      

  8.   

    this.DataList.ItemCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataList_ItemCommand);
    加入到private void InitializeComponent()
    {    
    }
      

  9.   

    已经在private void InitializeComponent()中了,代码自己生成的吧,我没动过
      

  10.   

    楼主是在Page_Load事件中调用DataList的DataBind()方法,而且在Page_Load事件中没有Page.IsPostBack的判断吧?把Page_Load事件包含在
    if ( !this.IsPostBack )
    {}
    语句中,特别是DataList的DataBind方法,一定要在这个语句中;就可以了
      

  11.   

    在模板列中:
    <asp:Button runat="server" Text="名称" OnCommand="eventhabdler" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"参数字段")%>' ID="Button1">
    </asp:Button>然后写一个方法:
    eventhabdler(object source, System.Web.UI.WebControls.CommandEventArgs e)通过
    e.CommandArgument.ToString()获得参数