2

私は ASP.NET と AJAX を初めて使用するので、完全に間違った方法で作業している可能性があります。

これは現時点ではすべてテスト中です。データベースにアクセスして値を更新する onclick 関数を備えた updatepanel があります。リンクボタンを押して、ページのクライアント ID を更新しようとしています。これは最初のクリックでは正常に機能しますが、その後のクリックでは明らかにサーバー側のデータが読み取られ、更新されたクライアント側のデータは読み取られません。クライアント ID の更新された値をリンクボタンのクリック関数に戻す必要があります。

ASPXコード

     <form id="form1" runat="server">
     <asp:toolkitscriptmanager ID="ToolkitScriptManager1" runat="server">
</asp:toolkitscriptmanager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <Triggers> 
        <asp:AsyncPostBackTrigger ControlID="LinkButton1" EventName="click" /> 
    </Triggers> 

     <ContentTemplate>

<div class="topbox">
   <h3>Client</h3> 


<div style="float:left">

<p>
    <asp:Label ID="Label1" runat="server" Text="ClientID" Width="150px"></asp:Label>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

</p>
      <asp:LinkButton ID="LinkButton1" runat="server">next --></asp:LinkButton>
      </ContentTemplate> 
 </asp:UpdatePanel>
</form>

ASPX.VBコード

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Open_database(1)
End Sub

Public Sub Open_database(e)
    Dim SQLConn As New SqlConnection()
    'The SQL Connection
    Dim SQLCmd As New SqlCommand()
    'The SQL Command
    Dim SQLdr As SqlDataReader
    'The Local Data Store
    SQLConn.ConnectionString = xxxx
    'Set the Connection String
    SQLConn.Open()
    'Open the connection
    SQLCmd.Connection = SQLConn
    'Sets the Connection to use with the SQL Command
    SQLCmd.CommandText = "Select * from Client where clientid='" & e & "'"
    'Sets the SQL String
    SQLdr = SQLCmd.ExecuteReader
    'Gets Data
    While SQLdr.Read()
        TextBox1.Text = (SQLdr("ClientID"))
    End While
    ' Do While SQLdr.NextResult()
    'Move to the Next Record
    SQLdr.Close()
    'Close the SQLDataReader        
    SQLConn.Close()
    'Close the connection
End Sub

Protected Sub LinkButton1_Click(sender As Object, e As EventArgs) Handles LinkButton1.Click
    Dim x = TextBox1.Text + 1
    Open_database(x)
End Sub

どんな助けでも大歓迎です、

トゥン

4

1 に答える 1

1

「SHARED変数の使用を避ける」より良いプログラミングのために...

Page_Load()コードを次のように変更するだけです

                     If Not IsPostBack Then
                            Open_database(1)
                     End If

上記のコードを使用するPage_Load()と、Open_database(1) 関数が 1 回だけ呼び出され、目的のLinkButton結果が得られます...

于 2013-04-01T13:26:48.330 に答える