0

ここに私がしようとしているものがあります:

最初のページ (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ダースのことを試しましたが、何も機能していません.

ありがとうございます。

4

0 に答える 0