向面板添加控件 [英] Adding controls to panel

查看:66
本文介绍了向面板添加控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨下面是我的代码我收到格式异常错误

输入字符串的格式不正确。在设计页面中我有下拉当我从下拉列表中选择数字时它必须创建许多文本框控件

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

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);

            }
        }
    }
}

推荐答案

尝试:

Try:
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++)
    {
        ...



启用页面级跟踪(<%@ Page Trace =True...%> )并查找警告消息,它将告诉您它无法解析的值。



您还希望将绑定代码包装在中(!IsPostBack){...} 阻止。目前,每次页面回发到服务器时,您都会重新绑定列表。


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.

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--");
}


我发现灵魂我只是评论了这一行ddlNumbers.Items.Insert(0,--Select - );



当我调试时将它添加到手表中我得到--select--在
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

之后

这篇关于向面板添加控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆