【问题标题】:Cannot fire itemcommand event asp.net无法触发 itemcommand 事件 asp.net
【发布时间】:2015-05-22 21:38:56
【问题描述】:

我正在尝试在下拉列表更改时填充数据列表控件。我无法触发 datalist 的 Itemcommand 事件。当我在 page_load 事件上填充数据列表时,它工作正常。但我不知道下拉菜单发生了什么。

后面的代码:

 protected void dlSize_SelectedIndexChanged(object sender, EventArgs e)
    {
        string CategoryID = Request.QueryString["ID"].ToString();

        using (TestEntities db = new TestEntities())
        {
            IEnumerable<Test.Product> Test= //linq expression here
            dlProducts.DataSource = Test;
            dlProducts.DataBind();
        }
    }

【问题讨论】:

  • 如果你想用下拉选择绑定数据列表,那么必须尝试下拉selectedIndexChanged事件,为什么要使用Item Command
  • datalist 在更改下拉列表时绑定,但绑定后我无法触发 datalist 的 itemcommand 事件。
  • 你是否在Page_Load 上使用Page.IsPostBack 属性,如果没有,请使用它并检查我的答案..

标签: c# asp.net linq


【解决方案1】:

使用事件处理程序尝试一下。

dlProducts.ItemCommand += new DataListCommandEventHandler(dlProducts_ItemCommand);

【讨论】:

    【解决方案2】:

    尝试使用

    protected void Page_Load(object sender, EventArgs e) 
    { 
        if (!IsPostBack) //this IF statement is what prevents re-binding on PostBack 
        { 
            // Code to bind datalist..
        } 
    
    }
    

    注意:- 您不得在回发时进行数据绑定。否则,任何挂起的事件处理程序请求都会被取消。

    【讨论】:

    • 我没有在加载时绑定数据列表。我正在绑定它更改下拉值。
    【解决方案3】:

    你是通过下拉列表触发数据列表的项目命令。你在我的视频中看到上传到下面给出的 youtube 链接: https://www.youtube.com/watch?v=hnZp6y2n_h8

    在本视频中,我使用“ID”变量。这个变量就像一个 ItemIndex。此 Id 提供下拉列表更改的 Datalistitem 索引。

    这就像一个 (e.ItemIndex=Id) 你在 e.ItemIndex 地方使用 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      相关资源
      最近更新 更多