я хочу взять идентификатор в качестве сеанса, но это дает мне ошибку парсера в asp.net - PullRequest
0 голосов
/ 06 июля 2019

Я пытаюсь отправить идентификатор с помощью строки запроса или сеанса ["p"] из гиперссылки в asp.net, но он продолжает давать мне эту ошибку "Ошибка синтаксического анализатора" Помогите мне, пожалуйста!

Я пытался разобрать его в int, но он тоже не работал

// это HTML

   <asp:Repeater runat="server" ID="reptater" OnItemCommand="reptater_ItemCommand">
                    <ItemTemplate>
                <section>
                    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='~/commander.aspx?id='+<%#Eval("id_Prod") %>>
                   <div class="gallery">
                       <h1> <%#Eval("nom_Prod") %></h1>

                       <asp:Image ID="image1"  runat="server"  width="180" height="120" ImageUrl='<%#Eval("img") %>' />

            &nbsp;&nbsp;<div class="desc"> <%#Eval("Détails") %> <br> Prix:  <%#Eval("prix") %> DH  <%#Convert.ToInt32(Eval("id_Prod")) %></div>
        </div>
                        </asp:HyperLink>
                </section>


            </ItemTemplate>


        </asp:Repeater>

// это мой код

protected void Page_Load(object sender, EventArgs e)
        {

            Connexion.cnx.Open();

            Connexion.dt1.Clear();
            Label2.Text = Request.QueryString["search"].ToString();
            int nbr;
            Connexion.cmd.CommandText = "select count(*) from  Produit where nom_Prod='" + Request.QueryString["search"].ToString() + "'";
            Connexion.cmd.Connection = Connexion.cnx;
            nbr = (int)Connexion.cmd.ExecuteScalar();
            if (nbr >= 1)
            {

                Connexion.cmd.CommandText = "select id_Prod,nom_Prod,Détails,Prix,#emailVendeur,img from Produit where nom_Prod='" + Request.QueryString["search"].ToString() + "'";
               Connexion.cmd.Connection = Connexion.cnx;
               Connexion.dr = Connexion.cmd.ExecuteReader();
                Connexion.dt1.Load(Connexion.dr);
                reptater.DataSource = Connexion.dt1; ;
                reptater.DataBind();
                Connexion.dr.Close();
            }
            else { Label3.Visible = true; }



        }

Я хочу, чтобы, нажимая на элемент div, он переносил меня на другую страницу с идентификатором в качестве сеанса или строкой запроса, которую я предпочел бы в качестве сеанса

1 Ответ

0 голосов
/ 06 июля 2019

Вместо использования

Request.QueryString["search"]

вы должны использовать

Request.QueryString["id"]

, поскольку вы отправляете "id" в строке запроса

NavigateUrl = '~ / commander.aspx? id = '+ <% # Eval ("id_Prod")%>

...