пост обратно на ту же страницу не работает asp.net - PullRequest
0 голосов
/ 22 ноября 2011

на моей странице user.aspx любой конкретной учетной записи пользователя отображаются все другие имена пользователей / изображения в виде ссылки внутри списка данных вместе с информацией о конкретных пользователях, вошедших в систему. Теперь я хочу, чтобы, если я щелкну по любой другой ссылке пользователя,информация о пользователях должна быть на той же странице user.aspx.я использую этот код при загрузке страницы

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    If Session("UserName") Is Nothing Then
        Response.Redirect("login.aspx")
    Else
        If Not (IsPostBack) Then
            binddata()
            binddata1()
            binddata2()
        End If
    End If
End Sub


     Sub binddata()
    Dim mycommand As New SqlCommand("SELECT * FROM details where id = @id", con)
    mycommand.Parameters.Add("@id", SqlDbType.Int)
    mycommand.Parameters("@id").Value = Convert.ToInt32(Request.QueryString("id"))
    con.Open()
    Data.DataSource = mycommand.ExecuteReader
    Data.DataBind()
    con.Close()

End Sub
Sub binddata1()

    Dim mycommand As New SqlCommand("SELECT * FROM details where id = @id", con)
    mycommand.Parameters.Add("@id", SqlDbType.Int)
    mycommand.Parameters("@id").Value = Convert.ToInt32(Request.QueryString("id"))
    con.Open()
    nameimage.DataSource = mycommand.ExecuteReader
    nameimage.DataBind()
    con.Close()
End Sub
Sub binddata2()

    Dim mycommand As New SqlCommand("SELECT * FROM details ", con)
    con.Open()
   user.DataSource = mycommand.ExecuteReader
    user.DataBind()
    con.Close()
End Sub

и этот скрипт для datalist

  <asp:DataList ID="custom" runat="server" DataKeyField="Name" RepeatColumns="1" >
          <ItemTemplate>
          <div><table>
             <tr><asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='<%#   GetImageURL(Eval("Pic")) %>' PostBackUrl='<%# Eval("id", "user.aspx?id={0}") %>'/></tr>
            <tr><td align="left" valign="top" style="width:90px"><asp:LinkButton ID="name" runat="server" ForeColor="Blue" Text='<%#Container.DataItem("Name")%>'></asp:LinkButton></td></tr>
               </table></div></ItemTemplate>
</asp:DataList>

этот код работает нормально для первой проверки / клика.когда я нажимаю на одного из пользователей, он загружает информацию о пользователе.но после этого, когда я нажимаю на другого пользователя, он не загружает детали этого пользователя.Я хочу показать: пользователь вошел в систему, затем там на его странице есть список других пользователей с изображениями.когда я нажимаю на любой из них, детали конкретного должны быть загружены в нужных местах.помоги мне с этим

Ответы [ 2 ]

0 голосов
/ 23 ноября 2011

Ответ Юрия должен работать, но другой подход заключается в использовании CommandArgument вместо PostBackUrl.Вам нужно будет настроить обработчик событий для вашего DataList ItemCommand .Значение CommandArgument будет вашим значением идентификатора.Ваш обработчик событий возьмет этот идентификатор и свяжет его с вашим дисплеем данных.

0 голосов
/ 22 ноября 2011

Вы проверяете загрузку первой страницы перед выполнением привязки данных. Снимите эту проверку или проверьте имя элемента управления, которое запускает обратную передачу перед ним.

...