通过repeater将数据保存到数据库jQueryAjax

通过repeater将数据保存到数据库jQueryAjax,jquery,html,asp.net,ajax,vb.net,Jquery,Html,Asp.net,Ajax,Vb.net,大家好,我正在使用中继器将数据保存到数据库中,但我遇到了一个问题,中继器的第一个按钮被触发,而另一个按钮没有,请有人帮忙好吗 请您检查一下,为什么其他按钮没有被触发,谢谢您的支持 <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Bidding.aspx.vb" Inherits="Bidding" %> <!DOCTYPE h

大家好,我正在使用中继器将数据保存到数据库中,但我遇到了一个问题,中继器的第一个按钮被触发,而另一个按钮没有,请有人帮忙好吗

请您检查一下,为什么其他按钮没有被触发,谢谢您的支持

   <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Bidding.aspx.vb" Inherits="Bidding" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <asp:ScriptManager ID="SM1" runat="server">
        </asp:ScriptManager>

 
     <asp:repeater id="Repeater1" runat="server">
      <HeaderTemplate>
            <ul>
      </HeaderTemplate>
      <ItemTemplate>

          <li> <a href="ProductDetails.aspx?ItemID=<%# Eval("ItemID") %>"> <asp:Image id="Image1" runat="server" ImageUrl='<%#Eval("Image1") %>' /></a>
         
            <div class="product-info">
               <h3>
                   <asp:Label ID="Label1" runat="server" Text='<%# Eval("Name")%>'></asp:Label> </h3>
              <div class="product-desc">
                <h4>Bid</h4>
                  <asp:TextBox ID="txtbid" runat="server"></asp:TextBox><asp:Button ID="btnSave"
                      runat="server" Text="btnSave" />
                <asp:HiddenField ID="HiddenField1" Value='<%#Eval("EndDate")%>' runat="server" />
                  <asp:Label ID="lblauction" Visible="false" Text='<%#Eval("AuctionID")%>' runat="server" />
                <strong class="price"><%# Eval("Price")%></strong>
                <br/> <p>
               
                    

                    <asp:UpdatePanel id="updPnl" runat="server" UpdateMode="Conditional">
  <ContentTemplate>
                   
                <asp:Label ID="lblTimer"   runat="server"></asp:Label>
                     </ContentTemplate>
                            <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="timer1" EventName ="tick" />
                    </Triggers>
            </asp:UpdatePanel>
                       </div>
                    
                    
                     </p>
                  
               </div>
                
            </div>
          </li>
          </ItemTemplate>
      <FooterTemplate>
        
            </ul>
      </FooterTemplate>
     </asp:repeater>
        

       <asp:Timer ID="timer1" Interval="1000" OnTick="timer1_tick" runat ="server">
                   </asp:Timer>
        
        <asp:HiddenField ID="HiddenItem" runat="server" />
        
    </div>
    </form>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript" src="http://cdn.jsdelivr.net/json2/0.1/json2.js"></script>
    <script type="text/javascript">
        $(function () {
            $("[id*=btnSave]").on("click", function () {
                var user = {};
                user.BiddingPrice = $("[id*=txtbid]").val();
                user.AuctionID = $("[id*=lblauction]").val();
                
                $.ajax({
                    type: "POST",
                    url: "Bidding.aspx/SaveUser",
                    data: '{user: ' + JSON.stringify(user) + '}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                        alert("BID has been added successfully.");
                        window.location.reload();
                    }
                });
                return false;
            });
        });
    </script>
</body>
</html>
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Net.Mail
Imports System.Web.Configuration
Imports System.Web.Script.Services
Imports System.Web.Services

Partial Class Bidding


    Inherits System.Web.UI.Page
    Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("VirgoPlaza").ToString())
    Dim EndDate As DateTime
    Dim auction As Integer
    Private ReadOnly _start As String
    Public Sub New()
        _start = WebConfigurationManager.ConnectionStrings("VirgoPlaza").ConnectionString
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then

            Using con1 As New SqlConnection(_start)


                Dim sql1 As String = "SELECT Item.ItemID, Item.Name,Item.Image1, Item.Description, Item.Price,Auction.EndDate,Auction.AuctionID FROM Item INNER JOIN Auction ON Item.ItemID = Auction.ItemID Where Auction.Status='Valid' AND Auction.EndDate>=@endate "
                Dim myCommand1 As New SqlCommand(sql1, con1)
                myCommand1.Parameters.AddWithValue("@endate", DateTime.Now)

                myCommand1.CommandType = CommandType.Text

                con1.Open()

                Dim category As SqlDataReader
                category = myCommand1.ExecuteReader()

                'binding data from category table to ddlcategory
                Repeater1.DataSource = category
                Repeater1.DataBind()

            End Using
          
        End If
    End Sub

    <WebMethod()> _
    <ScriptMethod()> _
    Public Shared Sub SaveUser(ByVal user As BID)
        Dim constr As String = ConfigurationManager.ConnectionStrings("VirgoPlaza").ConnectionString
        Using con As New SqlConnection(constr)
            Using cmd2 As New SqlCommand("Select BiddingPrice From Bid")
                cmd2.CommandType = CommandType.Text

                con.Open()
                cmd2.Connection = con
                Dim result As Double = cmd2.ExecuteScalar

                Dim result2 As Integer = Convert.ToInt32(result)

                Dim con1 As New SqlConnection(constr)

                Dim auction1 As Integer = Convert.ToInt32(user.AuctionID)
                If result2 = 0 Then
                    Using cmd As New SqlCommand("INSERT INTO BID VALUES(@Date, @BiddingPrice,@Status,@AuctionID,@BuyerID)")
                        cmd.CommandType = CommandType.Text
                        cmd.Parameters.AddWithValue("@Date", DateTime.Now)
                        cmd.Parameters.AddWithValue("@BiddingPrice", User.BiddingPrice)
                        cmd.Parameters.AddWithValue("@Status", "Available")
                        cmd.Parameters.AddWithValue("@AuctionID", auction1)
                        cmd.Parameters.AddWithValue("@BuyerID", 1)

                        cmd.Connection = con
                        con.Open()
                        cmd.ExecuteNonQuery()
                        con.Close()
                    End Using
                Else
                    If result2 >= User.BiddingPrice Then

                        MsgBox("Bid should be greather")

                    Else

                        Dim finalbid As Double = result2
                        MsgBox(finalbid)
                        Using cmd As New SqlCommand("UPDATE  BID  SET Date =@Date,BiddingPrice= @BiddingPrice,Status=@Status,AuctionID=@AuctionID,BuyerID =@BuyerID")
                            cmd.CommandType = CommandType.Text
                            cmd.Parameters.AddWithValue("@Date", DateTime.Now)
                            cmd.Parameters.AddWithValue("@BiddingPrice", User.BiddingPrice)
                            cmd.Parameters.AddWithValue("@Status", "Available")
                            cmd.Parameters.AddWithValue("@AuctionID", 11)
                            cmd.Parameters.AddWithValue("@BuyerID", 1)

                            cmd.Connection = con

                            cmd.ExecuteNonQuery()
                            con.Close()
                        End Using




                    End If


                End If


            End Using
        End Using
    End Sub

    Public Class BID
        Public Property BiddingPrice As Integer
            Get
                Return _BiddingPrice

            End Get

            Set(ByVal value As Integer)
                _BiddingPrice = value

            End Set
        End Property
        Private _BiddingPrice As String
        Public Property AuctionID As Integer
            Get
                Return _AuctionID

            End Get

            Set(ByVal value As Integer)
                _AuctionID = value

            End Set
        End Property
        Private _AuctionID As String

        
    End Class

    Protected Sub timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles timer1.Tick


        For Each item As RepeaterItem In Repeater1.Items
           
            Dim hidden = TryCast(item.FindControl("HiddenField1"), HiddenField)
            If Not SM1.IsInAsyncPostBack Then
                hidden.Value = hidden.Value

            End If
            Dim label2 = TryCast(item.FindControl("lblTimer"), Label)
            'Grab your DateTime object (checking that it exists)'

            'Store your TimeSpan Difference'
            Dim ts = (DateTime.Now - DateTime.Parse(hidden.Value))
            Dim travelTime As New TimeSpan(0, 0, 0, 0)
            'Now you can output your time as you please (excluding any decimal points)'
            label2.Text = String.Format("Time Left: {0:dd\:hh\:mm\:ss}", ts)
            Dim result2 As Integer = TimeSpan.Compare(ts, travelTime)

            If result2 >= 0 Then
                Using con1 As New SqlConnection(_start)




                    Dim sql1 As String = "SELECT Item.ItemID FROM Item INNER JOIN Auction ON Item.ItemID = Auction.ItemID Where Auction.Status='Valid' AND Auction.EndDate<=@endate "
                    Dim cmd As New SqlCommand(sql1, con1)
                    con1.Open()
                    cmd.Parameters.AddWithValue("@endate", DateTime.Now)
                    Dim query As Integer = cmd.ExecuteScalar
                    ''query = Convert.ToInt32(HiddenItem.Value).ToString look in finalcoursework
                    Response.Redirect("ShoppingCart.aspx?query=")
                    con1.Close()
                End Using
            End If

        Next

    End Sub
End Class

投标


$(函数(){ $(“[id*=btnSave]”)。在(“单击”上,函数(){ var user={}; user.BiddingPrice=$(“[id*=txtbid]”)val(); user.AuctionID=$(“[id*=lblaAction]”)val(); $.ajax({ 类型:“POST”, url:“Bidding.aspx/SaveUser”, 数据:“{user:'+JSON.stringify(user)+'}”, contentType:“应用程序/json;字符集=utf-8”, 数据类型:“json”, 成功:功能(响应){ 警告(“已成功添加投标”); window.location.reload(); } }); 返回false; }); }); 导入系统数据 导入System.Data.SqlClient 导入系统配置 导入System.Net.Mail 导入System.Web.Configuration 导入System.Web.Script.Services 导入System.Web.Services 部分类投标 继承System.Web.UI.Page Dim con作为新的SqlConnection(ConfigurationManager.ConnectionString(“VirgoPlaza”).ToString()) Dim EndDate作为日期时间 作为整数的模糊拍卖 私有只读\u以字符串开头 公共分新() _start=WebConfiguration Manager.ConnectionString(“VirgoPlaza”).ConnectionString 端接头 受保护的子页加载(ByVal sender作为对象,ByVal e作为System.EventArgs)处理Me.Load 如果不是Page.IsPostBack,则 使用con1作为新的SqlConnection(_start) Dim sql1 As String=“选择Item.ItemID,Item.Name,Item.Image1,Item.Description,Item.Price,Auction.EndDate,Auction.AuctionID从项目内部加入对项目的拍卖。ItemID=Auction.ItemID,其中Auction.Status='Valid'和Auction.EndDate>=@endate” 将myCommand 1作为新的SqlCommand(sql1,con1)进行Dim myCommand1.Parameters.AddWithValue(“@endate”,DateTime.Now) myCommand1.CommandType=CommandType.Text con1.Open() 将类别设置为SqlDataReader category=myCommand1.ExecuteReader() '将数据从类别表绑定到类别 Repeater1.DataSource=类别 Repeater1.DataBind() 终端使用 如果结束 端接头 _ _ 公共共享子存储用户(ByVal用户作为BID) Dim constr As String=ConfigurationManager.ConnectionString(“VirgoPlaza”).ConnectionString 使用con作为新的SqlConnection(cont) 使用cmd2作为新的SqlCommand(“从投标中选择投标价格”) cmd2.CommandType=CommandType.Text con.Open() cmd2.Connection=con Dim结果为Double=cmd2.ExecuteScalar Dim result2为整数=转换为.ToInt32(结果) Dim con1作为新的SqlConnection(CONT) Dim auction1作为整数=Convert.ToInt32(user.AuctionID) 如果result2=0,则 使用cmd作为新的SqlCommand(“插入到出价值中(@Date、@BiddingPrice、@Status、@AuctionID、@BuyerID)”) cmd.CommandType=CommandType.Text cmd.Parameters.AddWithValue(“@Date”,DateTime.Now) cmd.Parameters.AddWithValue(“@BiddingPrice”,User.BiddingPrice) cmd.Parameters.AddWithValue(“@Status”,“Available”) cmd.Parameters.AddWithValue(“@AuctionID”,auction1) cmd.Parameters.AddWithValue(“@BuyerID”,1) cmd.Connection=con con.Open() cmd.ExecuteNonQuery() con.Close() 终端使用 其他的 如果result2>=User.BiddingPrice,则 MsgBox(“出价应该更高”) 其他的 将最终ID设置为双精度=结果2 MsgBox(最终ID) 使用cmd作为新的SqlCommand(“更新出价集日期=@Date,BiddingPrice=@BiddingPrice,Status=@Status,AuctionID=@AuctionID,BuyerID=@BuyerID”) cmd.CommandType=CommandType.Text cmd.Parameters.AddWithValue(“@Date”,DateTime.Now) cmd.Parameters.AddWithValue(“@BiddingPrice”,User.BiddingPrice) cmd.Parameters.AddWithValue(“@Status”,“Available”) cmd.Parameters.AddWithValue(“@AuctionID”,11) cmd.Parameters.AddWithValue(“@BuyerID”,1) cmd.Connection=con cmd.ExecuteNonQuery() con.Close() 终端使用