看看是事件没有运行还是Response.Redirect("详细商品信息.aspx");没有运行?跟踪一下

解决方案 »

  1.   

    呵,不会是你的CommandName不是picture吧
    有可能的呀
    DataBind 方法应该不会引起这种反映
      

  2.   

    既然使用模板列,可以用ImageButton的OnClick事件

    <ItemTemplate>
    <asp:ImageButton ImageUrl='<%# DataBinder.Eval(Container.DataItem,"Path")%>' OnClick="Redirect" CommandArgument="参数" runat="server" ID="ImageButton1">
    </asp:ImageButton>
    </ItemTemplate>//.cs
    protected void Redirect(object sender, EventArgs e)
    {
    string Url="详细商品信息.aspx?参数="+((ImageButton)sender).CommandArgument.ToString();
    Response.Redirect(Url,true);
    }
      

  3.   

    Page_Load里加上:
    if(!Page.IsPostBack)
    {
       //在这里面DataBind
    }
      

  4.   

    在Page_Load里BindData()的时候,一定要加上
    if(!IsPostBack)
    {
       BindData();
    }
    不然事件不会触发。因为控件事件在Page_Load之后,且控件的ViewState值要有变化,页面才会raise event handle。所以如果你每次Load都BindData()的话,对于页面来说检测不到控件状态的变化,所以你的event handle并不会被执行
      

  5.   

    我跟踪了是事件没有运行,CommandName确实没错,我也用了if(!IsPostBack){},都不行,希望各位继续关注。多谢!
      

  6.   

    那应该是事件句柄丢失了,看看InitializeComponent()里面有没有:
    this.DataGrid1.ItemCommand += new DataGridCommandEventHandler(this.DataGrid1_ItemCommand)
      

  7.   

    委托丢了,重新指定,在DataGrid的事件里面指定ItemCommand 事件为你的ItemCommand过程
      

  8.   

    谢谢各位,我的问题在大家的帮助下已经解决,而且找到了两种解决方案,一种就是chilin提供的方案,把上面的Redirect事件定义为:
    protected void Redirect(object sender, System.Web.UI.ImageClickEventArgs e)可以实现功能;还有一种是那可以把Redirect事件定义为:
    flyingbirddhp()提供的方案。分已发出来者有份,请不要介意多少!以后我有问题还会继续向各位请教,请多关注,十分感谢!