Как выполнить удаление и редактирование в виде сетки, которая динамически добавляется из кода и находится внутри элемента управления аккордеоном - PullRequest
0 голосов
/ 17 августа 2011

Я в середине чего-то, и мне нужна помощь. У меня есть контроль аккордеона и внутри него у меня есть контроль сетки. И я могу связать значения из базы данных для каждого вида сетки. Далее я хочу выполнить операции редактирования и удаления. Я перепробовал так много обходных путей, и все было напрасно. Я прилагаю aspx и код для вашей справки. Любая помощь будет принята с благодарностью.

Страница Aspx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CategoriesTransaction.ascx.cs"
    Inherits="Tools.UserControls.CategoriesTransaction" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<ajaxToolkit:Accordion ID="accCategoryDetails" runat="server" Width="100%" SuppressHeaderPostbacks="true"
    OnItemDataBound="accCategoryDetails_ItemDataBound" HeaderCssClass="headerAccordion"
    SelectedIndex="0" ContentCssClass="contentAccordion" OnInit="accCategoryDetails_Init">
    <Panes>
        <ajaxToolkit:AccordionPane ID="AccordionPane" runat="server">
            <Header>
            </Header>
            <Content>
            </Content>
        </ajaxToolkit:AccordionPane>
    </Panes>
</ajaxToolkit:Accordion>

Код позади

    private void bindGrid()
            {
                DataTable category = new DataTable();
                category = MySqlDAL.getCategoriesReconciled();

                if (category.Rows.Count != 0)
                {
                    AjaxControlToolkit.Accordion accordion = FindControl("accCategoryDetails") as AjaxControlToolkit.Accordion;
                    AjaxControlToolkit.AccordionPane pane = FindControl("AccordionPane") as AjaxControlToolkit.AccordionPane;
                    int i = 0;


                    foreach (DataRow dr in category.Rows)
                    {
                        string categoryName = dr["category"].ToString();
                        if (accordion == null)
                        { return; }


                        {
                            GridView grid = new GridView();

                            if (grid == null)
                            {
                                return;
                            }
                            else
                            {
                                DataTable transactions = new DataTable();
                                transactions = MySqlDAL.getTransactionBasedCategories(categoryName);

                                grid.DataSource = transactions;
                                grid.AutoGenerateColumns = false;
//Formatting Grid
                                FormatColumns(transactions, grid);
                                grid.AutoGenerateDeleteButton = true;

                                grid.CssClass = "Grid";
                                grid.DataBind();

                            }

                            pane = new AjaxControlToolkit.AccordionPane();
                            pane.ID = "AccordionPane" + i;
                            pane.HeaderContainer.Controls.Add(categorylbl);
                            pane.HeaderContainer.Controls.Add(budgetAmountlbl);
                            pane.HeaderContainer.Controls.Add(overUnderlbl);
                            pane.HeaderContainer.Controls.Add(tranontAvglbl);
                            pane.ContentContainer.Controls.Add(grid);
                            accCategoryDetails.Panes.Add(pane);
                            ++i;

                        }
                    }
                }
            }

Что мне нужно сделать, это выполнить редактирование и удаление для каждого вида сетки внутри аккордеона. Заранее спасибо

1 Ответ

0 голосов
/ 31 августа 2011

Я не уверен в этом, но, похоже, вы используете таблицу данных, а не сетку.Попробуйте добавить Gridview и привязать к нему таблицу данных.

Или просто добавить Gridview.

Чтобы отредактировать таблицу данных, хотя попробуйте это ... позвольте нам сказать, что ваша таблица данных может выглядеть следующим образом

DataTable dt = new DataTable ();dt.Rows [0] ["ColumnName"] = "myrow";

здесь [0] - индекс строки, а ["ColumnName"] - имя столбца, после чего вы присваиваете любые данные, которые хотите преобразовать в данные.

надеюсь, это поможет

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