Quantcast
Channel: Visual Studio and Visual Web Developer Express
Viewing all articles
Browse latest Browse all 3509

ITemplate disappear when I click on a button

$
0
0

Hi,

I have a gridview initiated in the aspx page without any column

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
                        OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound"></asp:GridView>

I dynamically create the column on the fly from a DB. There are regular text columns and I also wanted to have a column with dropdown and an Apply button which I do have my own code.

When I click on the button, the dropdown boxes disappears so does the "Apply" button.  If I don't add "if (!IsPostBack) in Page_load, it works perfectly. What should I do in order to get this right? Please advice.

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                gvbind();
            }
        }


 protected void gvbind()
        {
            try
            {
                conn.Open();
 SqlCommand cmd = new SqlCommand("Select * from tbl", conn);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();

                da.Fill(ds);
                conn.Close();

                if (ds.Tables[0].Rows.Count > 0)
                {
                    GridView1.Columns.Clear();
                    DataTable dt = new DataTable();
                    dt = ds.Tables[0];
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        if (dt.Columns[i].ColumnName.ToString() != "SpecialColumn")
                        {
                            BoundField boundField = new BoundField();
                            boundField.ReadOnly = true;
                            boundField.DataField = dt.Columns[i].ColumnName.ToString();
                            boundField.HeaderText = dt.Columns[i].ColumnName.ToString();
                            GridView1.Columns.Add(boundField);
                        }
                        else
                        {
                            TemplateField ddlTmpField = new TemplateField();
                            ddlTmpField.HeaderText = "SpecialColumn";
                            ddlTmpField.ItemTemplate = new DropdownColumn();
                            GridView1.Columns.Add(ddlTmpField);
                        }

                    }
                    TemplateField btnTmpField = new TemplateField();
                    btnTmpField.ItemTemplate = new ButtonColumn();
                    GridView1.Columns.Add(btnTmpField);
          GridView1.DataSource = ds;
                    GridView1.DataBind();
                    GridView1.Width = 1000;
}
//Dropdown and Button itemTemplate
public class DropdownColumn : ITemplate { public void InstantiateIn(System.Web.UI.Control container) { DropDownList dl = new DropDownList(); dl.ID = "ddl"; dl.DataTextField = "SpecialColumn"; dl.DataValueField = "SpecialColumn"; container.Controls.Add(dl); } } public class ButtonColumn : ITemplate { public void InstantiateIn(System.Web.UI.Control container) { Button btn = new Button(); btn.ID = "btnApply"; btn.Text = "Apply"; container.Controls.Add(btn); } }




Viewing all articles
Browse latest Browse all 3509

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>