Telerik Radgrid Comment faire pour récupérer des valeurs textbox à partir généré dynamiquement RadGrid colonnes?

StackOverflow https://stackoverflow.com//questions/9625669

Question

Je suis de la création dynamique d'un RadGrid et en ajoutant GridTemplateColumns à elle.Ces colonnes ont textbox en eux.
Après liaison de la datatable à la grille, après que l'utilisateur apporte des modifications pour les zones de texte et en cliquant sur le bouton enregistrer, je voudrais accéder à la zone de texte valeurs.Mais je suis coincé à se procurer de la zone de texte instance.Je ne pouvais même pas obtenir de GridItems!
Pour ajouter plus de complexité, mon RadGrid est dans un UserControl, qui est dans une (multi)vue.
Heres le code.

    protected void Page_Init(object sender, EventArgs e)
    {
        DefineGridStructure();            
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (RadGrid1 != null && RadGrid1.Items.Count > 0)
        {
            string strtxt = ((TextBox)RadGrid1.Items[1]["ProductGroup1"].Controls[0]).Text;//For starters, load one control and check it's state
        }
    }
    private void DefineGridStructure()
    {
        RadGrid1 = new RadGrid();
        RadGrid1.AutoGenerateColumns = false;
        RadGrid1.ShowHeader = true;
        RadGrid1.NeedDataSource += RadGrid1_NeedDataSource;
        foreach(GridColumn qtyColumn in BuildGridQtyColumns(PaxColumnCount))
        {
            RadGrid1.MasterTableView.Columns.Add(qtyColumn);
        }
        //Add grid to page
        phRadGrid.Controls.Add(RadGrid1);
    }
    private List<GridColumn> BuildGridQtyColumns(int count)
    {
        List<GridColumn> qtyColumns = new List<GridColumn>();
        for (int i = 1; i <= count; i++)
        {
            string qtyColumnName = string.Format("ProductGroup{0}", i);
            GridTemplateColumn qtyColumn = new GridTemplateColumn();
            qtyColumn.ItemTemplate = new GridNumberTemplate(qtyColumnName);//Creates a textbox control
            qtyColumn.UniqueName = qtyColumnName;
            qtyColumn.HeaderText = "Qty";
            qtyColumn.HeaderStyle.Width = Unit.Pixel(60);
            qtyColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;

            qtyColumns.Add(qtyColumn);
        }
        return qtyColumns;
    }

Depuis mon contrôle est en vue, c'est Page_Init est appelé plus d'une fois pour chaque action qu'implique ce point de vue.

Était-ce utile?

La solution

Pour un radgrid généré de manière dynamique, il doit être créé dans la méthode de la page_Init et la visualisation de cette grille sera restauré pour nous automatiquement que nous pouvons obtenir la prise de la page_Load.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top