Click here to Skip to main content
15,896,502 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi Below is my code I am getting format exception error
Input string was not in a correct format. In design page i have drop-down when i select number from dropdown it has to create that many text box controls
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Panel2
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int[] numbers = { 1, 2, 3, 4, 5, 6 };
            ddlNumbers.DataSource = numbers;
            ddlNumbers.DataBind();
            ddlNumbers.Items.Insert(0, "--Select--");

        }

        protected void ddlNumbers_SelectedIndexChanged(object sender, EventArgs e)
        {

            for (int i = 0; i < int.Parse((ddlNumbers.SelectedItem.Text)); i++)
            {


                Panel1.Visible = true;
                TextBox tx = new TextBox();
                tx.ID = "tx" + i.ToString();
                Panel1.Controls.Add(tx);
                Literal lt = new Literal();
                lt.ID = "lt" + i.ToString();
                lt.Text = "<br/>";
                Panel1.Controls.Add(lt);

            }
        }
    }
}
Posted
Updated 23-Oct-15 3:23am
v2
Comments
Krunal Rohit 23-Oct-15 9:29am    
int.Parse((ddlNumbers.SelectedItem.Text.ToString()))

-KR
ShaHam11 23-Oct-15 9:36am    
Still the same error infact I tried selectedItem value still the same error
CHill60 23-Oct-15 9:59am    
What is the selected text?
Richard Deeming 23-Oct-15 10:05am    
NB: The Text property is already a string; there's no need to call .ToString() on it! :)
CHill60 23-Oct-15 10:06am    
Virtual 5 - I'll confess it's a mistake I still keep making :facepalm:

Try:
C#
protected void ddlNumbers_SelectedIndexChanged(object sender, EventArgs e)
{
    int count;
    string text = ddlNumbers.SelectedItem.Text;
    if (!int.TryParse(text, out count))
    {
        Trace.Warn("Numbers", string.Format("Cannot parse '{0}' as an integer.", text));
    }
    
    for (int i = 0; i < count; i++)
    {
        ...

Turn on page-level tracing (<%@ Page Trace="True" ... %>) and look for the warning message, which will tell you what value it's failing to parse.

You'll also want to wrap your binding code in a if (!IsPostBack) { ... } block. At the moment, you're re-binding the list every time the page posts back to the server.
C#
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindNumbersList();
    }
}

private void BindNumbersList()
{
    int[] numbers = { 1, 2, 3, 4, 5, 6 };
    ddlNumbers.DataSource = numbers;
    ddlNumbers.DataBind();
    ddlNumbers.Items.Insert(0, "--Select--");
}
 
Share this answer
 
I found the soultion I just commented this line ddlNumbers.Items.Insert(0, "--Select--");

when i debug add it in the watch I get --select-- after
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900