2010-09-17 44 views
0

我得到的错误是:这个名字AGENTNAME不会在目前情况下”如何获得文件后面的代码的asp:textbox值?

在Default.aspx的存在我有<asp:TextBox ID="agentName" runat="server" />

在代码隐藏文件我有agentName.Text

不过是说上面错误消息。

当我通过硬编码值,如“约翰”,它的作品。我需要一种方法来识别的代码隐藏文本框。

谢谢

以下是我的代码:

的Default.aspx:在“”关键字

//code behind on @page directive 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="WebApplication2.WebForm1"%> 

// Getting the value from XML 
Agentname.Text = root.SelectSingleNode("name").ChildNodes[0].Value; 

// Assigned a textbox 
asp:TextBox ID="Agentname" runat="server" disabled="true" MaxLength="57"/
(removed angel bracket as SO is ignoring this line, don't know why) 

//Code behind 

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 

namespace WebApplication2 
{ 
    public partial class WebForm1 : System.Web.UI.Page 
    { 
     public void SaveXml(object sender, EventArgs e) 
     { 
      XDocument xmlDoc = XDocument.Load(Server.MapPath("Agent.xml")); 
      Console.WriteLine("read XML"); 
      var person = xmlDoc.Descendants("agent"); 
      person.ElementAt(0).Value = ""; 

      xmlDoc.Element("agent").Add(new XElement("name", Agentname.Text)); 

      xmlDoc.Save(Server.MapPath("Agent.xml")); 



     } 
    } 
} 
+1

听起来像别的东西坏了,你可以发布更多的.aspx和代码隐藏文件吗? – CodingGorilla 2010-09-17 18:41:56

+0

不知道你的意思是这个评论:“(删除天使括号为SO是忽略这条线,不知道为什么)”。您需要在定义该文本框的开头和结尾处输入< and >。 – atconway 2010-09-18 21:11:09

+0

我指的是Stack Overflow中的编辑框。不在我的代码上。那里有尖括号。我从“asawyer”找到了答案。感谢您的期待。 – Jaspero 2010-09-21 17:20:29

回答

5

有时设计器文件与aspx文件不同步。删除“YourPage.aspx.designer.cs”文件,然后右键单击解决方案资源管理器中的表单,然后选择“隐藏到Web应用程序”

这将重新生成设计器以匹配当前的aspx。

+0

这解决了这个问题。谢谢! – Jaspero 2010-09-21 17:18:58

+0

非常欢迎,那个可以非常令人沮丧地弄清楚。 – asawyer 2010-09-22 01:30:36

6

尝试打字,然后在课堂上寻找你的控件名称后面。但是,你不能只说agentName.Text。您必须为其分配一个值或将该值提取到变量中。如果是真正的名为“AGENTNAME”,那么你应该能够解决,并建立以下内容:

//Assign the textbox a value 
this.agentName.Text = "John"; 

//Get value out of textbox value 
string MyName = this.AgentName.Text; 

此外TAKS看看下面的行,你的状态是在后面的页面的标记:

// Getting the value from XML 
Agentname.Text = root.SelectSingleNode("name").ChildNodes[0].Value; 

好了,可以将此代码放在网页的标记没有确定,这是一些“脚本”标签识别它的服务器代码是C#服务器端代码像显示如下:

<script language="C#" runat=server> 
    // Getting the value from XML 
    Agentname.Text = root.SelectSingleNode("name").ChildNodes[0].Value; 
</script> 

老实说,尽管你真的不想把这段代码放在标记中。它应该可能在Page_Load()事件中或在之后之后的其他适当事件中填充了您试图从Agentname文本框中提取数据的XML源。

相关问题