2017-06-29 11 views
2

私が次のことをする前に、GridViewが正しく表示されていましたので、これを行うことで前に誰かが噛まれた場合の変更について説明します。私のasp.net GridViewはもう表示されません

GridViewdatasourceを「cContact」から「cParticipant」に変更しました。 cContactはローカルクラスでした。しかし、cParticipantは参照プロジェクトのクラスです。ただし、参照されているプロジェクトはソリューションに含まれています。ここ はcParticipantです:

<DataContract()> 
Public Class cParticipant 
    <DataMember()> Public Property DeptPK As Integer 
    <DataMember()> Public Property DistrictCompanyName As String = "" 
    <DataMember()> Public Property ParticipantID As String 
    <DataMember()> Public Property Firstname As String = "" 
    <DataMember()> Public Property Lastname As String = "" 
    <DataMember()> Public Property BusinessEmail As String = "" 
    <DataMember()> Public Property BusinessPhone As String = "" 
    <DataMember()> Public Property PersonalCellPhone As String = "" 
    <DataMember()> Public Property PersonalEmail As String = "" 
    <DataMember()> Public Property RetainContact As Boolean = True 
End Class 

私は残念ながら、同時にcParticipantとそのメンバーのいくつかの改名をしなければなりませんでした。しかし、私は古い名前を徹底的に検索して、すべてのインスタンスがどこにでも名前が変更されるようにしました。マークアップのasp:BoundField DataField="aField"エントリに新しい名前が表示されることを慎重に確認しました。

また、すべてのフィールドはマークアップに記載されていますが、除外されたフィールドはありません。

Default.aspxのデザインビューでGridViewが表示され、各セルに「データバインド」を示す5行が表示されます。エッジのF12開発者ツールで

、私は「行」が表示されますが、GridViewがあるべきだろう場所を参照してください、それがリストにメンバーを追加した後だけ<div></div>.

だ、私はに参加者リストをバインドGridView

Dim C As New cParticipant 
C.DeptPK=1 
.... 
Participants.Add(C) 
grdParticipantList.DataSource = Participants 
grdParticipantList.DataBind() 

"参加者" Default.aspx.vbの地方公共財産である:

Public Property Participants() As List(Of cParticipant) 
    Get 
    Dim temp As Object = Session("Participants") 
    Return If(temp Is Nothing, Nothing, _ 
     DirectCast(temp, List(Of cParticipant))) 
    End Get 

    Set(ByVal value As List(Of cParticipant)) 
    Session("Participants") = value 
    End Set 

End Property 

UP DATE:私はページ上に別のgridviewを投げて、それにデータをバインドしました。表示されます。マークアップには何か問題があるはずです。ここで

が悪いものと正常に動作し、新しいもののためのコードです:

<div style="padding-top:20px;padding-bottom:50px;"> 

    <div class="row">   
     <div class="col-lg-12 ">   
      <asp:GridView ID="grdParticipantList" runat="server" EnableViewState="true" DataKeyNames="ParticipantID" AutoGenerateColumns="false" 
       HeaderStyle-BackColor="CornflowerBlue" HeaderStyle-ForeColor="White" CellPadding="4" Width="100%"  
       EmptyDataText="List of participants is currently empty." CssClass="table-hover"> 
       <Columns>   
        <asp:BoundField DataField="ParticipantID" HeaderText="ID" Visible="false" SortExpression="ID" HeaderStyle-CssClass="visible-lg" ItemStyle-CssClass="visible-lg" />   
        <asp:BoundField DataField="DeptPK" HeaderText="DeptPK" Visible="false" HeaderStyle-Width="0" ItemStyle-Width="0" SortExpression="DeptPK" />   
        <asp:BoundField DataField="DistrictCompanyName" HeaderText="District/Company" SortExpression="District" HeaderStyle-CssClass="visible-lg" ItemStyle-CssClass="visible-lg" />   
        <asp:BoundField DataField="Firstname" HeaderText="First Name" SortExpression="FName" ItemStyle-CssClass="visible-lg" HeaderStyle-CssClass="visible-lg" />   
        <asp:BoundField DataField="Lastname" HeaderText="LastName" SortExpression="LName" ItemStyle-CssClass="visible-lg" HeaderStyle-CssClass="visible-lg" />   
        <asp:BoundField DataField="BusinessEmail" HeaderText="Business Email" SortExpression="EmailB" ItemStyle-CssClass="visible-lg" HeaderStyle-CssClass="visible-lg" />   
        <asp:BoundField DataField="BusinessPhone" HeaderText="Business Phone" SortExpression="PhoneB" HeaderStyle-CssClass="visible-lg" ItemStyle-CssClass="visible-lg" />   
        <asp:BoundField DataField="PersonalEmail" HeaderText="Personal Email" SortExpression="EmailP" ItemStyle-CssClass="visible-lg" HeaderStyle-CssClass="visible-lg" />   
        <asp:BoundField DataField="PersonalCellPhone" HeaderText="Personal Phone" SortExpression="PhoneP" HeaderStyle-CssClass="visible-lg" ItemStyle-CssClass="visible-lg" />   
        <asp:BoundField DataField="RetainContact" HeaderText="Retain Info" Visible="false" SortExpression="RC" HeaderStyle-CssClass="visible-lg" ItemStyle-CssClass="visible-lg" /> 

        <asp:TemplateField HeaderText="Retain Info" SortExpression="RC"> 
         <ItemTemplate><%#IIf(Boolean.Parse(Eval("RetainContact").ToString()), "Yes", "No")%></ItemTemplate> 
        </asp:TemplateField> 

       </Columns>   
      </asp:GridView> 

</div> 


<asp:GridView ID="GridView1" runat="server"></asp:GridView> 
+0

ちょうどヒントは、誰も実際にビルドポストバックページはこれ以上好きではなく、ユーザーはそれが好きではありません。 XMLの代わりにAJAXではなくJSONを使用することを検討しましたか?最近、WebアプリケーションはJSであり、サーバーコールはWebサービスを通じて行われるため、ポストバックはありません。 –

+0

また、ASP MVCのパラダイムを見たいと思うかもしれません。 –

答えて

0

問題が去って行ったので、私は、これを自分で答えています。

ページの上にマークアップと関係があると思います。 ブートストラップを使用していて、ラベルがスパンであったはずです。

とにかくこれを読んで熟考した人に感謝します!

関連する問題