在ListView中更新值

时间:2015-02-17 08:01:12

标签: c# sql asp.net listview

我在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中的按钮来更新列表视图中的值?

(如果无法做到这一点,请提供一种不同的方式,我可以在提供相同自定义的列表中显示搜索结果。)

1 个答案:

答案 0 :(得分:0)

我更多地参与ASP MVC,但也许我的提示会帮助你。 我做这些行为的方式是将javascript函数绑定到按钮并使用jQuery我发送&#39; GET&#39;请求服务器上的特定操作(方法),例如:www.myexample.com/getData?tableid = 24,它使用包含所需数据的json进行响应。 希望这会引导您找到合适的解决方案。

干杯, 马雷克