2010-09-07 19 views
0

我是ListView控件中的新成員。我有一個列表視圖來顯示購物產品。在每個數據項中,我放置了一個「添加到購物車」按鈕的鏈接按鈕。在我的方案中,單擊此按鈕會導致ShoppingCart.Instance.AddItem("Product GUID")調用。我該如何執行該操作?
我的鏈接按鈕設置CommandName="Select"和執行這樣的:如何在DataBound後在ListView中獲取DataItem的Id

protected void ListView1_SelectedIndexChanging(object sender, ListViewSelectEventArgs e) 
{ 
    ListViewItem item = (ListViewItem)ListView1.Items[e.NewSelectedIndex]; 
    LinkButton lb = (LinkButton)item.FindControl("LinkButtonAddAndClose"); 
// Here i want to get selected Product Id... 
} 

但始終將selectedIndex是零! 我該如何撥打ShoppingCart.Instance.AddItem("Product GUID")並從DataItem獲取產品ID?
注意:Eval("ID")獲取產品GUID。

更新:
我設置<%# Eval("ID")%>爲LinkBut​​ton的的CommandArgument,我想財產以後臨客這樣的:

protected void LinkButtonAddAndClose_Click(object sender, EventArgs e) 
{ 
    LinkButton lb = (LinkButton)sender; 

    var productId = new Guid(lb.CommandArgument); 

    ShoppingCart.Instance.AddItem(productId); 
} 

回答

0

可以存取權限控制選定行內與ListView控件的ItemCommand事件:

protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e) 
{ 
    //for example i want to take commandargumetn atribute of current linkbutton 
    string st= (e.Item.FindControl("LinkButtonAddAndClose") as LinkButton).CommandArgument; 
} 
+0

您需要格式化上面給出的代碼示例,以便註釋和代碼是分開的。 – 2010-09-07 07:04:02

+0

你的代碼只是返回第一個數據項的CommandArgument。我爲LinkBut​​ton的CommandArgument放置了'<%#Eval(「ID」)%>',但總是st是第一個Item ID。我更新了我的問題,請注意。 – mahdiahmadirad 2010-09-11 22:45:30

相關問題