ここに私がしようとしているものがあります:
最初のページ (ListTraining.aspx) は、トレーニングのリストを表示し、そのトレーニングの [編集] または [表示] を選択できるようにするためのものです。2 番目のページ (EditTraining.aspx) では、トレーニング情報を編集することができます。
何が起こっている:
ListTraning で Edit をクリックすると、server.transfer to Editing トレーニングが実行されます。問題なくテキストボックスとチェックボックスを編集できます。[トレーニングの保存] ボタンをクリックすると問題が発生し、クリック イベントが表示されずに ListTraining ページに戻ります。デバッグ時に、すべての Textboxes と Checkboxes に値がないことに気付きました. IsPostBack は常に false であり、イベントに入る方法がわかりません。
コード:
ListTraining.aspx
<%@ Page Title="Training List" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="ListTraining.aspx.vb" Inherits="AFN_Personnel_Server.ListTraining" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Header" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div class="card">
<h1 class="card-header">Training List</h1>
<asp:GridView ID="gvTrainings" runat="server" HeaderStyle-CssClass="thead-dark" CssClass="table table-striped" DataKeyNames="TrainingId">
<Columns>
<asp:BoundField HeaderText="Training Name" DataField="Name" />
<asp:ButtonField ButtonType="Button" CommandName="it" Text="Edit" />
<asp:ButtonField ButtonType="Button" CommandName="vw" Text="View" />
</Columns>
</asp:GridView>
</div>
</div>
</asp:Content>
ListTraining.aspx.vb
Public Class ListTraining Inherits System.Web.UI.Page
Dim _trainId As Integer = 0
Public Property trainId() As Integer
Get
'Get and Set stuff
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not PreviousPage Is Nothing Then
If PreviousPage.Title = "Add Employee" Then
Dim oPage = DirectCast(PreviousPage, AddEmployee)
lError.Text = oPage.pageError
End If
End If
'Get Data
gvTrainings.DataSource = lQ
gvTrainings.DataBind()
End Sub
Private Sub gvTrainings_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles gvTrainings.RowCommand
_trainId = gvTrainings.DataKeys(e.CommandArgument)("StaffId")
If e.CommandName.ToLower = "it" Then
_trainId = gvTrainings.DataKeys(e.CommandArgument)("TrainingId")
Server.Transfer("~/Training/EditTraining.aspx", False)
End If
If e.CommandName.ToLower = "vw" Then
_trainId = gvTrainings.DataKeys(e.CommandArgument)("TrainingId")
Server.Transfer("~/Training/ViewTraining.aspx", True)
End If
End Sub
End Class
EditTraining.aspx
<%@ Page Title="" Language="vb" EnableViewState="True" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="EditTraining.aspx.vb" Inherits="AFN_Personnel_Server.EditTraining" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<span class="input-group-text">Training Name</span>
<asp:TextBox ID="tbTrainingName" runat="server" CssClass="form-control" placeholder="ex:// CPR" aria-describedby="basic-addon1"></asp:TextBox><br>
<asp:CheckBox ID="cbInterval" runat="server" /><label for="cbInterval" class="form-control">Done on an interval (ex// yearly or bi yearly)</label><BR>
<span class="input-group-text">Interval in Years</span><asp:TextBox ID="tbIntervalTime" runat="server" CssClass="form-control" TextMode="Number" aria-describedby="basic-addon1" max="24" min="0" step=".25" value="0"></asp:TextBox><br>
<asp:CheckBox ID="cbFromHire" runat="server" /><label for="cbFromHire" class="form-control">Interval starts on Hire Date</label><br>
<span class="input-group-text">Default Training Length (in hours)</span><asp:TextBox ID="tbDefaultHours" runat="server" CssClass="form-control" TextMode="Number" aria-describedby="basic-addon1" max="24" min=".25" step=".25" value="0"></asp:TextBox><br>
<asp:CheckBox ID="cbCoreTraining" runat="server" /><label for="cbFromHire" class="form-control">Is this a core training.</label><br>
<asp:HiddenField ID="hfTrainId" runat="server" />
<asp:Button ID="bSaveTraining" runat="server" Text="Save Training" CssClass="btn btn-outline-success" UseSubmitBehavior="false" />
</asp:Content>
EditTraining.aspx.vb
Public Class EditTraining Inherits System.Web.UI.Page
Dim _pageError As String
Dim iTrainId As Decimal
Dim oTrain As Training
Dim _trainId As Integer = 0
Public Property trainId() As Integer
'Get and Set stuff
End Property
Public Property sError() As Integer
'Get and Set stuff
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not PreviousPage Is Nothing Then
If PreviousPage.Title = "Training List" Then
Dim oPage = DirectCast(PreviousPage, ListTraining)
If IsNumeric(oPage.trainId) Then
'Pull Data from DB
'Fill in the TB's and CB's
Else
Response.Redirect("~\Training\ListTraining.aspx")
End If
End If
Else
If hfTrainId.Value.Length > 0 or IsPostBack Then
'Pull Data from DB
Else
Response.Redirect("~\Training\ListTraining.aspx")
End If
End If
End Sub
Private Sub bSaveTraining_Click(sender As Object, e As EventArgs) Handles bSaveTraining.Click
Try
'Save to DB
_pageError = oTraining.Name & " was sucessfully saved on " & Now()
Response.Redirect("~/Training/ViewTraining.aspx")
Catch ex As Exception
lError.Text = ex.Message
End Try
End Sub
End Class
ここで私が間違っていることを教えてください。私は2〜3ダースのことを試しましたが、何も機能していません.
ありがとうございます。