グリッドビュー内に、リンクボタン列を含むテンプレート列があります。linkButton 列がクリックされると、クライアント側がトリガーされ、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
見て助けてくれたすべての人に感謝します。