C# 需要帮助理解我';我越来越
请帮助我了解我遇到的错误是什么: lblTabCounter是在aspx页面中编码的标签,而lblc[index]是在页面加载期间运行时创建的标签集合 页面加载之外的声明:C# 需要帮助理解我';我越来越,c#,asp.net,C#,Asp.net,请帮助我了解我遇到的错误是什么: lblTabCounter是在aspx页面中编码的标签,而lblc[index]是在页面加载期间运行时创建的标签集合 页面加载之外的声明: Label[] lblc = new Label[10]; 内部页面加载事件: for (int i = 0; i < 10; i++) { lblc[i] = new Label() { Text = (i + 1).ToString() }
Label[] lblc = new Label[10];
内部页面加载事件:
for (int i = 0; i < 10; i++)
{
lblc[i] = new Label() { Text = (i + 1).ToString() };
this.Controls.Add(lblc[i]);
}
for(int i=0;i<10;i++)
{
lblc[i]=newlabel(){Text=(i+1).ToString()};
本.Controls.Add(lblc[i]);
}
在另一个名为NodeChanged的事件中:
int TabCount = Convert.ToInt32(lblTabCounter.Text.ToString());
int TabIndex = Convert.ToInt32(lblTabCounterIndex.Text.ToString());
if(TabCount <= 10)
{
divcont.Visible = true;
string tabName = getURLName(uRL);
MenuItem myItem = new MenuItem(tabName, TabIndex.ToString());
Menu1.Items.AddAt(TabIndex, myItem);
//f1.Attributes["src"] = url;
f1.Attributes.Add("src", lblURL.Text.ToString());
MultiView1.ActiveViewIndex = TabIndex;
lblc[TabCount].Text = lblTabCounter.Text;
lblc[TabCount + 1].Text = lblURL.Text;
TabCount++;
TabIndex++;
lblTabCounter.Text = TabCount.ToString();
lblTabCounterIndex.Text = TabIndex.ToString();
tvPermissions.ExpandAll();
//tvPermissions.CollapseAll();
int i = ctr;
}
int-TabCount=Convert.ToInt32(lblTabCounter.Text.ToString());
int TabIndex=Convert.ToInt32(lblTabCounterIndex.Text.ToString());
如果(TabCount该行代码可能存在两个问题:
lblc[TabCount]
为空
lblTabCount
为空
由于您在调试器中被暂停,您可以看到哪种情况是这样,然后查看代码的其余部分以找出原因。问题是您的网页正在刷新并丢失标签的状态
Label[] lblc = new Label[10];
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
lblc[i] = new Label();
this.Controls.Add(lblc[i]);
if (Session["lblc" + i.ToString()] == null)
Session["lblc" + i.ToString()] = lblc[i].Text = (i + 1).ToString();
else
lblc[i].Text = (string)Session["lblc" + i.ToString()];
}
但是,由于您的单击事件正在刷新页面,因此它将与lblc失去联系,因此您只能将会话设置为在刷新时,您将看到新标签。(当页面被事件刷新时)
由于您的特定事件,页面正在刷新过程中,因此标签将消失,但会话状态将保持不变。当您在刷新时设置会话时,代码将捕获会话,而不是将其设置为默认编号。
您实际上是使用设置的会话字符串生成新标签,而不是在刷新标签时更改标签的文本
还要确保您的Web.config文件中的
位于
请在此处阅读有关会话状态的更多信息我将按照lblc[index]数组的路径来确定元素偏移量是否在范围内,以及是否正确创建了元素偏移量,是否以null结束(null是对象lblc[index]还是文本属性)正在被引用。我认为如果您发布该方法,我们将能够提供更多帮助。这是一个非常常见的错误,很多事情都可能导致它。我猜,只要看一下代码,lblc[TabCount]
没有初始化(新标签
)好的,我会更新我的帖子。@passionateCoder请检查我的帖子,我真的更新了。嘿,你回来了,这与你现在提供的代码完全相关。我们可以通过聊天继续吗?我有很多问题,希望你能帮我。你提供的代码我放在for(int I=0;I<10;I++){lblc[I]=new Label(){Text=(i+1).ToString()};}在我声明Label[]lblc=new Label[10]时在页面加载中;在它之外。尝试将TabCount替换为数字0,看看它是否给您带来错误,然后将TabCount替换为数字9,看看它是否给您带来错误。当然我可以聊天。在我刚刚加入c#聊天室之前,我从未使用过聊天功能。
lblc[4].Text = "cool";
Session["lblc4"] = "cool";
Session["lblc4"] = "cool";