Связывание сетки в петле - PullRequest
0 голосов
/ 20 января 2011

Я разрабатываю веб-сайт, на котором мне нужно несколько раз связать сетку {внутри цикла for}, и, как и ожидалось, сетка перезаписывает предыдущие значения и просматривает последний результат итерации

Возможно, вам потребуетсякод для помощи. Вот это: -

for (Int32 i = 0; i < k.Length; i++)
    {
        business.clsplugins obj = new business.clsplugins();
        List<business.clspluginsprp> objprp = new List<business.clspluginsprp>();
        Int32 z = Convert.ToInt32(k.GetValue(i));
        objprp = obj.fnd_plugins(z);
        GridView2.DataSource = objprp;
        GridView2.DataBind();
    }

Ответы [ 3 ]

1 голос
/ 20 января 2011

Вам нужно переместить объявление List и назначения GridView вне цикла for - сейчас вы создаете новый List каждую итерацию, вам нужно только создать его, а затем привязать его к Grid. Например:

List<business.clspluginsprp> objprp = new List<business.clspluginsprp>();
business.clsplugins obj = new business.clsplugins();

for (Int32 i = 0; i < k.Length; i++)
{

    Int32 z = Convert.ToInt32(k.GetValue(i));
    objprp.Add(obj.fnd_plugins(z));

}

GridView2.DataSource = objprp;
GridView2.DataBind();
0 голосов
/ 20 января 2011

Попробуйте это.

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

ASPX:

<asp:PlaceHolder ID="plcSample" runat="server">
</asp:PlaceHolder>

Код:

protected void Page_Load(object sender, EventArgs e)
{
    DataSet dsSample = GetDataSet();
    GridView gvSample;
    if (dsSample.Tables.Count > 0 && dsSample.Tables[0].Rows.Count > 0)
    {
        for (int iCount = 0; iCount < dsSample.Tables.Count; iCount++)
        {
            gvSample = new GridView();
            gvSample.DataSource = dsSample.Tables[iCount];
            gvSample.DataBind();
            plcSample.Controls.Add(gvSample);
        }
    }

}

private DataSet GetDataSet()
{
    DataSet ds = new DataSet();
    DataTable dt;

    dt = new DataTable();
    dt.Columns.Add(new DataColumn("ID", typeof(string)));
    dt.Columns.Add(new DataColumn("Code", typeof(string)));
    DataRow dr;
    dr = dt.NewRow();
    dr["ID"] = 1;
    dr["Code"] = "KK";
    dt.Rows.Add(dr);
    dr = dt.NewRow();
    dr["ID"] = 2;
    dr["Code"] = "Karan";
    dt.Rows.Add(dr);
    ds.Tables.Add(dt);

    dt = new DataTable();
    dt.Columns.Add(new DataColumn("ID", typeof(string)));
    dt.Columns.Add(new DataColumn("Code", typeof(string)));
    dr = dt.NewRow();
    dr["ID"] = 1;
    dr["Code"] = "AA";
    dt.Rows.Add(dr);
    dr = dt.NewRow();
    dr["ID"] = 2;
    dr["Code"] = "Arun";
    dt.Rows.Add(dr);
    ds.Tables.Add(dt);

    return ds;
}
0 голосов
/ 20 января 2011

Коу не может связываться дважды. Затем вы вызываете DataBind (). Контролл перестраивает его содержимое на основе текущего источника данных. Старое содержимое отбрасывается. Таким образом, вы должны использовать Список, связывающий ВСЕ ваши данные, назначить его DataSource и затем вызвать DataBind ()

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