Gridview selectedindex изменено, не срабатывая при первом нажатии - PullRequest
1 голос
/ 01 апреля 2011

Вот мой код:

Protected Sub BookingsGV_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles BookingsGV.SelectedIndexChanged
    BookingID = BookingsGV.SelectedValue
    Dim query = From a In db.Approvers Where a.ApprovalStatus = False And a.BookingID = BookingID
    Select a.ApproverEmail()
    ApproverList.DataSource = query
    ApproverList.DataBind()
    EmailStatusLabel.Text = String.Empty
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim query = From b In db.Bookings Where b.Approved = False And (From a In db.Approvers Where a.ApprovalStatus = False Select a.BookingID).Contains(b.BookingID) Select b.BookingID, b.DateRequired Distinct Order By DateRequired
    BookingsGV.DataSource = query
    BookingsGV.DataBind()
    If ApproverList.Items.Count > 0 Then
        DetailsPanel.Visible = True
    Else
        DetailsPanel.Visible = False
    End If
End Sub

Когда я нажимаю на строку в первый раз, она выбирается, но ничего не запускается, и моя панель сведений не отображается.Когда я нажимаю второй раз, я получаю ожидаемые результаты.Подскажите пожалуйста, как обойти эту проблему?

1 Ответ

1 голос
/ 01 апреля 2011

Это потому, что вы перепривязываете при обратной передаче.Оберните код из вашего метода Page_Load следующим образом:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack
        Dim query = From b In db.Bookings Where b.Approved = False And (From a In db.Approvers Where a.ApprovalStatus = False Select a.BookingID).Contains(b.BookingID) Select b.BookingID, b.DateRequired Distinct Order By DateRequired
        BookingsGV.DataSource = query
        BookingsGV.DataBind()
        If ApproverList.Items.Count > 0 Then
            DetailsPanel.Visible = True
        Else
            DetailsPanel.Visible = False
        End If
    End If
End Sub

Возможно, вам потребуется переместить оператор If, где вы измените видимость DetailsPanel, из оператора PostBack If.Трудно точно знать, что ты хочешь делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...