Listview中的ItemCommand没有在用户控件中触发

本文关键字:控件 用户 中的 ItemCommand Listview | 更新日期: 2023-09-27 18:09:24

我有用户控制,在项目模板中有链接按钮,我试图在后面的代码中捕获Itemcommand事件,但事件没有被解雇。

我已经做了其他类似的问题,但它没有帮助我。下面是我的代码片段,有人能帮我吗?

视图——

<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>  
后台代码——

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

Listview中的ItemCommand没有在用户控件中触发

Item命令没有触发,这是因为我在页面加载事件中有一个ISPostback检查,所以它抵制事件处理程序调用为ItemCommand事件注册的方法。

当我在webcontrol中删除IsPostback检查时,事件正在被触发

From MSDN:

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

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

如果你像这样声明你的链接按钮(只注意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