Как подключить GridView DataSource через класс Webpart? - PullRequest
2 голосов
/ 01 марта 2010

Я пытаюсь сделать компонент myGridView с помощью WebPArt, вы это знаете:

using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.WebControls; 
using System.Web.UI;

namespace MyGridView
{
    public class MyGridView : WebPart
    {
        GridView gv;

        protected override void CreateChildControls()
        {
            gv = new GridView();
            gv.CssClass = "tablestyle";
            this.Controls.Add(gv);
        }
    }
}

Я добавил этот GridView на панели инструментов. Все отлично. Я хочу добавить свой собственный дизайн CSS в мой GridView. Но если я перенесу этот gridView с панели инструментов на страницу aspx. если я свяжу свой источник данных; Источники данных не показывают себя.

Как эта Основная программа:

protected void Page_Load(object sender, EventArgs e)
    {
      LoadData loaddata = new LoadData();
      DataTable  dt = loaddata.LoadSQL("conn", "sp_GetAllCategory");
       MyGridView1.datas....   -----> i can not see DataSource why?
    }

Я хочу увидеть мой источник данных GridView. если я напишу источник данных Binding. MyGridView1.DataSource -----> Я не вижу DataSource почему?

1 Ответ

0 голосов
/ 02 марта 2010

Потому что вам нужно добавить DataSource к элементу управления; веб-часть не поддерживает его по умолчанию (класс basedataboundcontrol определяет DataSource и DataBind). Так что вам нужно добавить это:

public object DataSource
{
   get 
   {
       this.EnsureChildControls();
       return gv.DataSource; 
   }
   set 
   { 
       this.EnsureChildControls();
       gv.DataSource = value; 
   }
}

Как правило, вы должны вызывать EnsureChildControls (), чтобы все дочерние элементы управления были созданы перед переносом свойств сетки, но я не уверен, что EnsureChildControls доступен для вас. Я думаю, что это так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...