0

グリッドビュー内に、リンクボタン列を含むテンプレート列があります。linkBut​​ton 列がクリックされると、クライアント側がトリガーされ、TRUE の場合はサーバー側イベントを呼び出す必要があります。しかし、どういうわけか、サーバー側のイベントは、TRUE または FALSE の両方のケースで呼び出されています。何か不足している場合はお知らせください......

マークアップ コードは次のようになります --

<asp:TemplateField HeaderText="Disable/Enable" ItemStyle-Width="10%"  HeaderStyle-HorizontalAlign="Left"#
    <ItemTemplate>
        <asp:LinkButton runat="server" ID="ableDisableLaborCode" CommandName="linkButtonClick" CommandArgument='#%# Eval("coLaborCodeID") %#'##/asp:LinkButton#
    </ItemTemplate>
</asp:TemplateField>

これは、クライアント側のイベントが登録される場所です

Private Sub gridVwCoLaborCodes_RowDataBound(sender As Object, e As     System.Web.UI.WebControls.GridViewRowEventArgs) Handles gridVwCoLaborCodes.RowDataBound
    If (e.Row.RowType = DataControlRowType.DataRow) Then
        Dim _lnk As LinkButton = DirectCast(e.Row.FindControl("ableDisableLaborCode"), LinkButton)
        Dim _drv As DataRowView = DirectCast(e.Row.DataItem, DataRowView)
        _lnk.Text = If(CBoolBit(_drv(Fields.NAME_FIELD_IS_ENABLED_FLAG)), "Disable", "Enable")
        _lnk.OnClientClick = String.Format("return confirm('Are you sure you want to deactivate this labor code ?');")
    End If
End Sub

以下は、サーバー側イベントのコードです --

Private Sub gridVwCoLaborCodes_RowCommand(sender As Object, e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gridVwCoLaborCodes.RowCommand
    If e.CommandName = "linkButtonClick" Then
        CoLaborCodeId = CIntNull(e.CommandArgument.ToString())
    End If
End Sub

見て助けてくれたすべての人に感謝します。

4

1 に答える 1

1

別の方法で JavaScript イベントを割り当ててみてください。

Private Sub gridVwCoLaborCodes_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gridVwCoLaborCodes.RowDataBound
    If (e.Row.RowType = DataControlRowType.DataRow) Then
        Dim _lnk As LinkButton = DirectCast(e.Row.FindControl("ableDisableLaborCode"), LinkButton)
        Dim _drv As DataRowView = DirectCast(e.Row.DataItem, DataRowView)
        _lnk.Attributes.Add("onclick", "return confirm('Are you sure you want to deactivate this labor code ?');")
        lnk.Text = If(CBoolBit(_drv(Fields.NAME_FIELD_IS_ENABLED_FLAG)), "Disable", "Enable")
    End If
End Sub
于 2012-10-25T21:31:36.987 に答える