我在listview和标签中有一个按钮。标签绑定到我的数据库并显示分数。如果按下按钮,我希望在客户端更新分数。但由于我无法从代码隐藏中访问Listview中的项目,因此我不知道如何执行此操作。并且updatepanel不起作用。
我的列表视图绑定到Sqldatasource:
<asp:ListView ID="ListViewSearch" runat="server" DataSourceID="SqlDataSourceWebsite" DataKeyNames="WebsiteID">
我的按钮和我的评级标签:
<asp:LinkButton ID="BtnUp" runat="server" CssClass="btn btn-default btn-xs" CommandArgument='<%# Eval("testId").ToString() %>' OnClick="up_click"></asp:LinkButton>
<asp:LinkButton ID="BtnDown" runat="server" CssClass="btn btn-default btn-xs" CommandArgument='<%# Eval("testId").ToString() %>' OnCommand="down_click"></asp:LinkButton>
<asp:Label ID="LabelRating" runat="server" Text=' <%# Eval("rating") %>'></asp:Label>
upClick()函数:
protected void up_click(object sender, EventArgs e)
{
LinkButton btn = (LinkButton)sender;
String webID = btn.CommandArgument.ToString();
int ID = Convert.ToInt32(webID);
click(ID, 1);
}
Click()函数:
public void click(int webID, int vote)
{
using (SqlConnection con = new SqlConnection(strCon))
{
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText = "UPDATE [Test] SET [rating]+=@vote WHERE [testId]=@testID";
cmd.Parameters.AddWithValue("@webID", webID);
cmd.Parameters.AddWithValue("@vote", vote);
con.Open();
cmd.ExecuteNonQuery();
}
con.Close();
}
}
代码按预期更新评级,但要查看更改,我必须刷新页面。所以问题是;如何通过单击同一lisview中的按钮来更新列表视图中的值?
(如果无法做到这一点,请提供一种不同的方式,我可以在提供相同自定义的列表中显示搜索结果。)
答案 0 :(得分:0)
我更多地参与ASP MVC,但也许我的提示会帮助你。 我做这些行为的方式是将javascript函数绑定到按钮并使用jQuery我发送&#39; GET&#39;请求服务器上的特定操作(方法),例如:www.myexample.com/getData?tableid = 24,它使用包含所需数据的json进行响应。 希望这会引导您找到合适的解决方案。
干杯, 马雷克