2009-05-15 13 views
1

私のチェックアウトページには、顧客が注文したアイテムのテーブルを構築するItemTemplateを持つListViewがあります。私は、次のマークアップを持って、テーブルのフッターに合計を追加したい:サーバーからのデータを含むListViewにデータを入力する

<asp:ListView ID="lvOrderSummary" runat="server"> 
    <LayoutTemplate> 
    <table id="tblOrderSummary"> 
     <tr> 
     <td><b>Title</b></td> 
     <td><b>Cost</b></td> 
     </tr> 
     <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> 
     <tr> 
     <td><b>Total Cost:</b></td> 
     <td><%# GetTotalCost().ToString()%></td> 
     </tr> 
    </table> 
    </LayoutTemplate> 
    <ItemTemplate> 
    <tr> 
     <td><%#Eval("Title") %></td> 
     <td><%#Eval("Cost") %> </td> 
    </tr> 
    </ItemTemplate> 
</asp:ListView> 

私は私が必要と値を返すGetTotalCostと呼ばれるサーバ側のメソッドを持っています。私が持っている問題は、このメソッドは決して呼び出されないということです。 私も試したし、代わりに使用しているの:

<td><%# GetTotalCost().ToString()%></td> 

私はListViewコントロールで合計を表示する方法例えば

<td id="tdTotal" runat="server"></td> 
--------------- 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
    TableCell td = ((TableCell)this.FindControl("lvOrderSummary_tdTotal")); 
    } 
} 
+0

セルを見つける以外に何もしないため、ページの読み込みが不完全です。 –

+0

@John - 申し訳ありませんが、これは単なるサンプルです。変数tdはnullを返します。 – Fermin

答えて

2

チェックthis articleを使用してみました。

基本的には、レイアウトテンプレートにラベルを追加することができます。

<asp:ListView ID="lvOrderSummary" runat="server" 
    OnPreRender="lvOrderSummary_PreRender" ...> 

    <LayoutTemplate> 
    ... 
    <td><asp:Label ID="lblTotalCost" runat="server" Text="Total"/></td> 
    .. 
    </LayoutTemplate></asp:ListView> 

そしてあなたはPreRenderイベントハンドラでラベルのテキストを設定します。

protected void lvOrderSummary_PreRender(object sender, EventArgs e) 
{ 
    Label lbl = lvOrderSummary.FindControl("lblTotalCost") as Label; 
    lbl.Text = GetTotalCost().ToString(); 
} 
0
Try 

     Dim strcon As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=D:\webarticles\App_Data\mydatabase.mdf;Integrated Security=True;User Instance=True" 
     Dim con As New SqlConnection(strcon) 
     con.Open() 
     Dim da As SqlDataAdapter 
     Dim ds As New DataSet 
     Dim sqlstring As String = "SELECT * FROM tblstudent " 
     da = New SqlDataAdapter(sqlstring, con) 
     da.Fill(ds) 
     DetailsView1.DataSource = ds.Tables(0) 
     DetailsView1.DataBind() 

    Catch ex As Exception 
     MsgBox("There is some Error") 

    End Try 

別のデータを制御しているhandelingをDetailsViewコントロールは、関連付けられたデータソースから一度に1つのレコードを表示、削除、編集、挿入する機能を提供します。 DetailsViewコントロールはソートをサポートしていません。デフォルトでは、DetailsViewコントロールはレコードの各フィールドを独自の行に表示します。