2011-09-22 27 views
2

我有用户控件,它在项目模板中有linkbutton,我试图在代码后面捕获Itemcommand事件,但事件没有被解雇。ListView中的ItemCommand未在用户控件中触发

我已经通过了其他类似的问题,但它没有帮助我。下面是我的代码片断,有谁能帮我解决这个问题吗?

Listview-

<asp:ListView runat="server" ID="lvTherapeuticAlternatives" OnItemCommand="TherapeuticAlternatives_OnItemCommand"> 

ItemTemplate-

<ItemTemplate> 
      <tr class='data'> 
       <td style="width:210px;"> 
        <asp:LinkButton ID="lnkMedSelection" runat="server" CommandName="SelectedMed" CommandArgument='<%#Eval("NDC") & ", " & Eval("DrugGenericProductID") %>' > 
        <asp:Label ID="lblDrugName" runat="server" Text='<%# Eval("DrugDescription") %>' /> 
        </asp:LinkButton > 
       </td> 
       <td style="width:70px;" align="center"> 
        <asp:Label ID="lblBrandGeneric" runat="server" Text='<%# Eval("descBrandGeneric") %>' /> 
       </td> 
       <td style="width:110px;" align="center"> 
        <asp:Label ID="lblStatus" runat="server" Text='<%# Eval("FormularyStatusDescription") %>' /> 
       </td> 
       <td style="width:210px;" align="left"> 
        <asp:Label ID="lblFlat" runat="server" Text='<%# Eval("CopayInfo") %>' /> 
       </td> 
      </tr> 
     </ItemTemplate> 

Codebehind-

Protected Sub TherapeuticAlternatives_OnItemCommand(ByVal sender As Object, ByVal e As ListViewCommandEventArgs) Handles lvTherapeuticAlternatives.ItemCommand 

    End Sub 

回答

0

From MSDN:

单击ListView控件中的按钮时会引发ItemCommand事件。这使您可以在发生此事件时执行自定义例程。

而且您没有任何按钮或ListView上的任何其他类型的控件可能会引发回传;因此,你的ItemCommand处理程序永远不会被引发。

更新

如果你宣布你的LinkBut​​ton像这样(只注意OnClick事件):

<asp:LinkButton ID="lnkMedSelection" OnClick="lnkMedSelection_Click" runat="server" CommandName="SelectedMed" CommandArgument='<%#Eval("NDC") & ", " & Eval("DrugGenericProductID") %>' > 

你在代码中添加这背后:

Protected Sub lnkMedSelection_Click(sender As Object, e As EventArgs) 
     ' Do something here for example: 
     Label2.Text = "Linked button clicked" 
    End Sub 



Protected Sub TherapeuticAlternatives_OnItemCommand(ByVal sender As Object, ByVal e As ListViewCommandEventArgs) Handles lvTherapeuticAlternatives.ItemCommand 
    'Notice how this event is also raised. 
    ' You can put a break point or simply test with a label as so: 
    Label1.Text = "ItemCommand Fired" 
End Sub 
+0

感谢您的评论。 – Senthil

+0

我在列表视图控件中有链接按钮。它是 - asp:LinkBut​​ton ID =“lnkMedSelection”runat =“server”CommandName =“SelectedMed”CommandArgument ='<%#Eval(“NDC”)&“,”&Eval(“DrugGenericProductID”)%>' – Senthil

+0

@Senthil没问题,但是这对你有帮助吗?你知道你需要做什么才能解决这个事件吗? – Icarus

2

Item命令没有被触发,这是因为我有ISPostback检查页面加载事件,因此它阻止事件处理程序调用为ItemCommand事件注册的方法。

当我删除Webcontrol中的IsPostback检查时,事件被激发。

相关问题