2016-05-09 10 views
0

ASP.netを使用していますが、プロジェクトをデバッグするときにブラウザに表示されないグリッドビューがあります。同じページでは、テキストボックスを使用して、それが表示されます。パラメータ値のため、私のgridviewがブラウザに表示されません

これはHTMLです。

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/MasterPages/SvShop.Master" CodeBehind="Mijnoverzicht.aspx.vb" Inherits="SvShop.Mijnoverzicht" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 


<h1>Mijn Artikelen</h1> 


<table> 
     <tr> 
      <td>Email</td> 
      <td> 
       <asp:TextBox ID="txtMijnEmail" runat="server" CssClass="tekstvak" Width="190px"></asp:TextBox> 

      </td> 
      </tr> 
    </table> 



<div class="OverzichtMijn"> 


    <asp:GridView ID="GridViewMijn" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="MijnDataSource" AllowSorting="True" Width="845px"> 

     <Columns> 

      <asp:BoundField DataField="ArtikelBeschrijving" HeaderText="Beschrijving" SortExpression="ArtikelBeschrijving" /> 
      <asp:BoundField DataField="ArtikelPrijs" HeaderText="Prijs" SortExpression="ArtikelPrijs" /> 
      <asp:BoundField DataField="ArtikelAankoopdatum" HeaderText="Aankoopdatum" SortExpression="ArtikelAankoopdatum" /> 
      <asp:BoundField DataField="ArtikelTekoopgezet" HeaderText="Tekoopgezet" SortExpression="ArtikelTekoopgezet" /> 
      <asp:BoundField DataField="GebruikersNaam" HeaderText="Naam" SortExpression="GebruikersNaam" /> 
      <asp:BoundField DataField="GebruikersVoornaam" HeaderText="Voornaam" SortExpression="GebruikersVoornaam" /> 
      <asp:BoundField DataField="GebruikersEmail" HeaderText="Email" SortExpression="GebruikersEmail" /> 
      <asp:BoundField DataField="GebruikersGSM" HeaderText="GSM" SortExpression="GebruikersGSM" /> 
     </Columns> 
     <EditRowStyle CssClass="GridViewEditRow" /> 
    </asp:GridView> 

    <asp:SqlDataSource ID="MijnDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:SvShopInternString %>" ProviderName="<%$ ConnectionStrings:SvShopInternString.ProviderName %>" SelectCommand="SELECT tblArtikel.ArtikelBeschrijving, tblArtikel.ArtikelPrijs, tblArtikel.ArtikelAankoopdatum, tblArtikel.ArtikelTekoopgezet, tblGebruiker.GebruikersNaam, tblGebruiker.GebruikersVoornaam, tblGebruiker.GebruikersEmail, tblGebruiker.GebruikersGSM FROM ((tblArtikel INNER JOIN tblGebruiker ON tblArtikel.GebruikersID = tblGebruiker.GebruikersID) INNER JOIN tblRubriek ON tblArtikel.RubriekID = tblRubriek.RubriekID) WHERE (tblGebruiker.GebruikersEmail = '@Email')"></asp:SqlDataSource> 

</div> 
</asp:Content> 

これはブラウザの表示です。 Browser View

このコード行に問題があるはずです。

<asp:SqlDataSource ID="MijnDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:SvShopInternString %>" ProviderName="<%$ ConnectionStrings:SvShopInternString.ProviderName %>" SelectCommand="SELECT tblArtikel.ArtikelBeschrijving, tblArtikel.ArtikelPrijs, tblArtikel.ArtikelAankoopdatum, tblArtikel.ArtikelTekoopgezet, tblGebruiker.GebruikersNaam, tblGebruiker.GebruikersVoornaam, tblGebruiker.GebruikersEmail, tblGebruiker.GebruikersGSM FROM ((tblArtikel INNER JOIN tblGebruiker ON tblArtikel.GebruikersID = tblGebruiker.GebruikersID) INNER JOIN tblRubriek ON tblArtikel.RubriekID = tblRubriek.RubriekID) WHERE (tblGebruiker.GebruikersEmail = '@Email')"></asp:SqlDataSource> 

@email は、このコードの上にテキストボックスから彼の値を取得するパラメータ:

Protected Sub txtMijnEmail_TextChanged(sender As Object, e As EventArgs) Handles txtMijnEmail.TextChanged 
    MijnDataSource.SelectCommand.Replace("@Email", txtMijnEmail.Text) 
GridViewMijn.DataBind() 
End Sub 
+0

デバッグ目的GridViewMijn.ShowHeader="true"GridViewMijn.EmptyDataText="No Data returned"を設定し、一時的に検討するすべてのレコードを返すあなたのデータソースのですか?そうでなければ、グリッドビューは表示されません。 – boruchsiper

+0

いいえ、 '' SELECT * WHERE email = '"&txtEmail.text&"' "' –

+0

の行だけを表示したいからではありません。グリッドビューには、テキストボックスが空であるために表示するレコードがありません。 – boruchsiper

答えて

1

オーバーキル - ちょうどSelectParametersに制御パラメータを追加します。

<asp:SqlDataSource ID="MijnDataSource" runat="server" 
     ConnectionString="<%$ ConnectionStrings:SvShopInternString %>" 
     ProviderName="<%$ ConnectionStrings:SvShopInternString.ProviderName %>" 

     SelectCommand="SELECT <snip> WHERE (tblGebruiker.GebruikersEmail = '@Email')"> 

     <SelectParameters> 
      <asp:ControlParameter 
       ControlID="txtMijnEmail" 
       PropertyName="Text" 
       Name="Email"> 
      </asp:ControlParameter> 
     </SelectParameters> 

    </asp:SqlDataSource> 

そして、有効な電子メールが提供されたときに、Selectコマンドがデータセットを返すことを確認してください。

また

+0

ありがとう、私はちょうど答えたと同じことをしたが、私はコードの代わりにデザインでそれをやった。 –

+0

最終的には同じことになります。 .aspxを直接変更すると、aspxマークアップに慣れていれば第2の性質になります。それはデザイナーがやっていることのすべてです。それは来るでしょう。 – fnostro

関連する問題