簡體   English   中英

使用查詢字符串的LinkBut​​ton重定向

[英]LinkButton Redirection with Query String

我正在嘗試制作一些簡單的代碼,以使用發送ID和命令名的中繼器onitemcommand在數據庫中創建數字。

在數據庫中增加int的代碼可以正常工作,但是當我嘗試將重定向添加到“文章頁面”時,您可以在其中閱讀整篇文章。

因此,我的問題是如何使用LinkButton重定向並在重定向中創建查詢字符串,如下所示,在linkbutton內的<a> (HTML5)標記中// //如果添加<a> (HTML5)標記則不會更新數據庫中的int // //如果刪除<a> (HTML5)標記,它將更新數據庫int但不會使用查詢字符串進行重定向。

        <asp:Repeater ID="Repeater_Frontpage" OnItemCommand="Repeater_Frontpage_ItemCommand" DataSourceID="SqlDataSource1" runat="server">
            <ItemTemplate>
                    <asp:LinkButton CommandName="Visit" CommandArgument='<%# Eval("news_id") %>' runat="server"><a href="Article.aspx?category_id=<%# Eval("fk_categories_id") %>&amp;news_id=<%# Eval("news_id") %>">Read More</a></asp:LinkButton>
            </ItemTemplate>
        </asp:Repeater>




protected void Repeater_Frontpage_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "Visit")
    {
        SqlConnection conn = new SqlConnection(Helpers.ConnectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;

        int userId = int.Parse(e.CommandArgument.ToString());
        cmd.CommandText = "UPDATE News SET news_visits = news_visits + 1 WHERE news_id =" + userId;

        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
    }
}

您可以將ItemIndex設置為CommandArgument

CommandArgument='<%# Container.ItemIndex %>' 

然后您可以從Repeater DataSource獲取行

protected void repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{

    if (e.CommandName == "Visit")
    {
        var rowIndex = (int)e.CommandArgument;
        //Here I am assuming that your data source is a DataTable
        var row = ((DataTable)repeater.DataSource).Rows[0];
        var newsID = row.Field<int>("newsID");
        var categoriesID = row.Field<int>("fk_categories_id");

        Response.Redirect($"Article.aspx?category_id={categoriesID}& amp;news_id={categoriesID}");
        Response.Write($"Do something with {e.CommandArgument}");
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM