DataItemTemplate Control of AspxGridView

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Deva Kumar
    New Member
    • Oct 2012
    • 5

    DataItemTemplate Control of AspxGridView

    I am using Devexpress.Aspx Gridview control. I have an AspxGridview that shows the following data.

    1. Gallery Name
    2. Gallery (Image Column)
    3. Display Order

    In "Display Order" column i have to get the input from the user to display the images in that order. So i used a column that is the Template of DataItemTemplat e (Textbox Template). I successfully bound the values to the columns. After editing the values and click on save button I am not able to get the Control from the "Display Order" column. That return null.

    But if i use the same code while loading the grid and trace the code, I am getting the Control and its values.

    Why i am not getting the control and its values after binding the grid? Can anyone help me?

    See my code below.


    Code:
    public class TextBoxTemplateColumn : ITemplate
    {
    public void InstantiateIn(Control container)
    {
    GridViewDataItemTemplateContainer gcontainer = (GridViewDataItemTemplateContainer)container;
    DevExpress.Web.ASPxEditors.ASPxTextBox txt = new DevExpress.Web.ASPxEditors.ASPxTextBox();
    txt.ID = "txtDisplayOrder";
    txt.Width = 250;
    txt.MaxLength = 5;
    txt.Text = (gcontainer.Text.ToString() == "999999") ? string.Empty : gcontainer.Text.ToString();
    container.Controls.Add(txt);
    }
    }
     
    private void BindHomeGallery()
    {
    List objList = new ManageHomeGallery().FetchAllGallery();
     
    TextBoxTemplateColumn txtTemp = new TextBoxTemplateColumn();
    DevExpress.Web.ASPxGridView.GridViewDataTextColumn gcDisplayOrder = new DevExpress.Web.ASPxGridView.GridViewDataTextColumn();
    gcDisplayOrder.Name = "DisplayOrder";
    gcDisplayOrder.Caption = "DisplayOrder";
    gcDisplayOrder.FieldName = "DisplayOrder";
    gcDisplayOrder.UnboundType = DevExpress.Data.UnboundColumnType.String;
    gcDisplayOrder.Visible = true;
    gcDisplayOrder.VisibleIndex = 2;
    gcDisplayOrder.DataItemTemplate = txtTemp;
    grdvwManageHomeGallery.Columns.Add(gcDisplayOrder);
     
    grdvwManageHomeGallery.DataSource = dtGallery;
    grdvwManageHomeGallery.DataBind();
     
    }
     
    
    This is the line i use to get the control and access its values.
     
    DevExpress.Web.ASPxEditors.ASPxTextBox txtDisplayOrder =(DevExpress.Web.ASPxEditors.ASPxTextBox) grdvwManageHomeGallery.FindRowCellTemplateControl(e.VisibleIndex, (DevExpress.Web.ASPxGridView.GridViewDataTextColumn)grdvwManageHomeGallery.Columns["DisplayOrder"], "txtDisplayOrder");

    Thanks in advance. I hope you can help me....
    Last edited by Rabbit; Jul 30 '13, 07:46 PM. Reason: Please use code tags when posting code or formatted data.
Working...