2010-08-18 3 views
2

Просто начиная с ASP.NET и трудно использовать GridView. У меня есть набор переменных сеанса, которые я хочу добавить в элемент управления GridView, но мне не хватает знаний. Файл:Показать переменные сеанса в GridView (ASP.NET)?

<%@ Page Title="Warehouse" Language="C#" AutoEventWireup="true" 
    MasterPageFile="~/Site.master" 
    CodeFile="Warehouse.aspx.cs" Inherits="Warehouse" %> 

<asp:Content ID="HeaderContent" runat="server" 
    ContentPlaceHolderID="HeadContent"> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <h2> 
     Warehouse 
    </h2> 
    <asp:Panel ID="WarehousePanel" runat="server"> 
     <asp:GridView ID="GridView1" runat="server"> 
     </asp:GridView> 
    </asp:Panel> 
</asp:Content> 

В коде позади Я хочу, чтобы добавить переменные сессии в GridView1, только для целей отображения. Позже он будет подключен к базе данных, но для практики я хочу знать, как добавить переменные сеанса в GridView1. Файл:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Warehouse : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (Session["milk"] == null) 
       Session["milk"] = "0"; 
      if (Session["apple"] == null) 
       Session["apple"] = "0"; 
      if (Session["orange"] == null) 
       Session["orange"] = "0"; 

      // on page load, add session variables ie Session["milk"].ToString(); 
      // column 1: inventory name 
      // column 2: inventory value 
      GridView1.? 
     } 
    } 

Возможно, я думаю, что все это неправильно. Если я это сделаю, пожалуйста, поправьте меня на правильный путь! Thanx для прослушивания.

+0

Вы действительно получили нету в любом месте, я предлагаю вам сделать больше читать. – leppie

ответ

4

Это так просто, как положить это в Page_Load:

// Sample to add a value to session to ensure that something is shown 
Session.Add("SessionValue1", "Value"); 

// Actual work of binding Session to the grid 
GridView1.DataSource = Session; 
GridView1.DataBind(); 

Там в Microsoft Knowledge Base article, что идет какой-то способ, чтобы ответить на ваш вопрос (ы), поскольку это обеспечивает некоторые примеры привязки данных в действии, а также ссылки для дальнейшего статьи, дающие дополнительную информацию.

Предполагая, что вы имели некоторый код, такой как:

var warehouseItems = 
    from item in DataTableContainingWarehouseItems.AsEnumerable() 
    select 
    new 
    { 
     InventoryName = item.Field<string>("Name"), 
     InventoryValue = item.Field<int>("Value"), 
     InventoryPrice = item.Field<decimal>("Price"), 
     StockOnHandValue = Convert.ToDecimal(item.Field<int>("Value") * item.Field<decimal>("Price")) 
    }; 

Затем можно связать непосредственно к тому, что:

GridView1.DataSource = warehouseItems; 
GridView1.DataBind(); 
+0

Thanx! Это поставило меня на правильный путь ... BR –

Смежные вопросы