【问题标题】:How to enable disable buttons in datalist如何在数据列表中启用禁用按钮
【发布时间】:2011-05-12 12:54:51
【问题描述】:

我有一个数据列表,其中包含一些带有 2 个按钮的数据绑定字段。我想根据每行的列(状态)值启用禁用按钮,因此例如,如果 state 的值为 0 ,则当 state 的值为 1 时,删除按钮应该禁用,并且添加按钮应该类似地启用,反之亦然..

protected void dlEditCaravans_ItemDataBound(object sender, DataListItemEventArgs e)
{
    Button addtoFeauture = e.Item.FindControl("btnAddToFeature") as Button;
    Button removetoFeauture = e.Item.FindControl("btnRemoveFeature") as Button;
    int id = Convert.ToInt32(dlEditCaravans.DataKeys[e.Item.ItemIndex]);
    int check = caravans.GetfeautureValue(id);

    if (check == 0)
    {
        addtoFeauture.Enabled = true;

    }

    else
    {
        removetoFeauture.Enabled = true;

    }

  }

我已经尝试过类似上面的方法,但它给出的对象引用未设置为实例错误。

【问题讨论】:

    标签: asp.net database datalist


    【解决方案1】:

    需要使用Datalist的ItemDatabound事件

    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
     if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
        {
            DataRow dr = ((DataRowView)e.Item.DataItem).Row;
            if (Convert.ToBoolean(dr["StateColumnName"])
            {
              ((Button)e.Item.FindControl("Button1")).Enable = True;
            }
        }
    }
    

    【讨论】:

    • 好吧,让我试试看,如果 (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 意味着什么
    • 由于有不同的项目模板,如页眉、页脚、项目、替代等,但您的按钮将是项目/替代模板,您希望启用/禁用这些而不是页眉/页脚模板。
    • 我仍然很困惑,你的解决方案有效,但我无法理解逻辑,所以你的意思是我们使用 e.item.itetype 来确定它是按钮还是图像,这就是你的意思
    • Datalist 在页眉、页脚模板中找不到控件
    【解决方案2】:
      void DataListProduct_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
         {
             if (e.Item.ItemType == ListItemType.Item ||
                 e.Item.ItemType == ListItemType.AlternatingItem)
             {
    
                 Button BT = e.Item.FindControl(“ButtonID“) as Button;
                 BT.Enable = True or false depends upon your condition
             }
    
         }
    

    【讨论】:

    • 尝试应用条件 if ( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem ) 在使用按钮属性之前也检查 null
    • 好吧,让我试试看,如果 (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 意味着什么
    猜你喜欢
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2015-05-05
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多