通过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()
终端使用