向面板添加控件 [英] Adding controls to panel
问题描述
嗨下面是我的代码我收到格式异常错误
输入字符串的格式不正确。在设计页面中我有下拉当我从下拉列表中选择数字时它必须创建许多文本框控件
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屋!