質問

ここでは、私のクラスのいくつかのプロパティです。別のクラスのパブリック・オブジェクトの DNRole

もあります
    private Int32 _IDMarketingCampaign;
    private String _Name;

    public Int32 IDMarketingCampaign
    {
        get { return _IDMarketingCampaign; }
        set { _IDMarketingCampaign = value; }
    }
    public String Name
    {
        get { return _Name; }
        set { _Name = value; }
    }
    public DPRole DNRole = new DPRole();

同じクラスでは、私は方法のreturnigリストを持っています。私の定期的な分野に加えて、私も自分のDNRoleオブジェクトの一つのフィールドを移入しています:

listItem.DNRole.RoleName = DR [ "RoleNameFK"]のToString();

私の質問は...であることは、この合法で、それが行われるべきであり、そうならば、どのように私はgirdview内のデータを表示する方法を教えてください。

であります
public List<MarketingCampaign> SelectForGrid(string strRoleName)
        {
            List<MarketingCampaign> lista = new List<MarketingCampaign>();
            SqlCommand command = new SqlCommand("fra_MarketingCampaignSelectForGrid ", conn);
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.Add("RoleName", SqlDbType.VarChar).Value = strRoleName;
            SqlDataReader dr = null;
            try
            {
                conn.Open();
                dr = command.ExecuteReader();
                while (dr.Read())
                {
                    MarketingCampaign listItem = new MarketingCampaign();

                    listItem.IDMarketingCampaign = Convert.ToInt32(dr["IDMarketingCampaign"]);
                    listItem.Name = dr["Name"].ToString();
                    listItem.DNRole.RoleName = dr["RoleNameFK"].ToString();
                    ...
                    lista.Add(listItem);
                }
役に立ちましたか?

解決

あなたはのObjectDataSourceを使用することができます - SelectForGridを呼び出しラップし、また、あなたのGridViewにバインド一覧を指示することができます:

MyGrid.DataSoure = some. SelectForGrid();
MyGrid.DataBind();

データは* .aspxの/ ASCXコードにバインドされた場合、プロパティに列をバインドする必要があります。 評価およびバインドを使用すると、名前が、MarketingCampaignに明示的なキャストを使用するには、より高速な方法でそれを行うことができます。

<asp:TemplateField >
     <ItemTemplate> 
        <%#((MarketingCampaign)Container.DataItem).Name%> 
     </ItemTemplate>

...

他のヒント

List<MarketingCampaign> mk= obj.SelectForGrid("Role");
GridView1.DataSource = mk;
GridView1.DataBind();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top