如何在gridview中执行删除和编辑,该gridview是从代码隐藏中动态添加的,并且位于手风琴控件内

时间:2011-08-17 05:48:21

标签: c# asp.net accordion aspxgridview

我正处于某种状态,我需要一些帮助。 我有一个手风琴控制器,里面有一个gridview控件。我能够将数据库中的值绑定到每个gridview。我接下来要做的是执行编辑和删除操作。我尝试了很多变通办法,一切都是徒劳的。我特此附上aspx和代码,供您参考。任何帮助将不胜感激。

Aspx Page

<%@ 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;

                        }
                    }
                }
            }

我需要做的是对手风琴内的每个gridview执行编辑和删除。提前致谢

1 个答案:

答案 0 :(得分:0)

我不确定这一点,但看起来你使用的是数据表而不是gridview。尝试添加Gridview并将数据表绑定到它。

或者只是添加一个Gridview。

编辑数据表虽然试试这个......  让我们说你的数据表是这样的

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

这里[0]是行索引,[“ColumnName”]是列名,之后你想要数据的数据。

希望这会有所帮助