如何使用ASP.net获取Listview Itemdatabound事件中的输入类型Button?

时间:2015-11-06 09:47:29

标签: c# jquery asp.net-mvc listview

我正在开发一个asp.net应用程序事件,我正在绑定事件。我在数据表中分配的会话中有一些值。现在我希望如果绑定列表视图中的ProductID和会话ProductID匹配按钮应该被禁用。这是我的Bind Listview代码。

dt = new ProductImages().SelectProductsWithImages();

if (dt.Rows.Count > 0)
{
    ListFeatured.DataSource = dt;
    ListFeatured.DataBind();
}

在列表视图中,有一个html类型的按钮:

<input type="button" class="button_type_4 bg_scheme_color r_corners tr_all_hover color_light mw_0 m_bottom_15" 
       value="Add to Cart" id="btnCart" onclick="Cart(this);" />

我想访问此按钮。为了访问此按钮,我使用了以下

protected void ListFeatured_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    try
    {
        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            Label lblpid = (Label)e.Item.FindControl("lblPid");
            long pid = Convert.ToInt64(lblpid.Text);
            Control btnCart = (Control)e.Item.FindControl("btnCart");

            var b = e.Item.FindControl("btnCart");
            DataRow[] row = dtDetails.Select("ProductID=" + pid);

            if (row.Length > 0)
            {
                //b.Visible=
            }
        }
    }
    catch (Exception ex)
    {
        throw (ex);
    }
}

但输入类型的按钮值始终为空。请帮助我一个人。

1 个答案:

答案 0 :(得分:1)

您需要通过添加runat="server"

将此html按钮设为服务器控件
<input type="button" runat="server" class="button_type_4 bg_scheme_color r_corners tr_all_hover color_light mw_0 m_bottom_15" value="Add to Cart" id="btnCart"  onclick="Cart(this);" />

在后面的代码中,您可以通过将其转换为HtmlInputButton

来找到此控件
HtmlInputButton btnCart = (HtmlInputButton)e.Item.FindControl("btnCart");