【发布时间】:2010-10-04 15:38:34
【问题描述】:
我在从后面的代码中设置变量并在 ASP.NET 页面中使用它(将其设置为文本框中的值)时遇到了一些困难。我的网页只是出错并说它在当前上下文中不存在。该变量在 Page_Load 方法中声明和设置。
这里是相关的 ASP.NET 代码。我假设您不需要查看背后的代码,因为我已经测试了通过代码隐藏(使用 Response.Write)输出变量并且效果很好。
<asp:TemplateField HeaderText="Initial Path"
SortExpression="Initial_Path">
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server"
Text='<%# initialPath %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox8" runat="server"
Text='<%# initialPath %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label8" runat="server" Text='<%# initialPath %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
谢谢:)
编辑:好的,下面是代码的相关部分
string schedID = sched.SchedulerInstanceId;
JobDetail jobDetail2 = sched.GetJobDetail(Request.QueryString["JOB_NAME"], "sched1");
JobDataMap dataMap2 = jobDetail2.JobDataMap;
initialPath = dataMap2.GetString("initialPath");
Response.Write(initialPath);
response.write 用于调试 - 它正确输出变量,因此实际设置了变量
编辑 2:这是背后的代码
public partial class EditJobDetails : System.Web.UI.Page
{
public string initialPath { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
//Scheduler stuff for Quartz.NET, removed because of length
string schedID = sched.SchedulerInstanceId;
JobDetail jobDetail2 = sched.GetJobDetail(Request.QueryString["JOB_NAME"], "sched1");
JobDataMap dataMap2 = jobDetail2.JobDataMap;
initialPath = dataMap2.GetString("initialPath");
}
不工作的只是 ASP 表单中的 。它只是没有显示任何东西,就像变量没有被分配一样
【问题讨论】:
-
您的代码隐藏对于这个问题来说至少是。你也可以给我们看看吗?
-
我认为我们需要更多信息,正如柯克所说。编辑仍然没有告诉我们“initialPath”是否是公共的,或者它是否通过属性访问......
-
对不起,我现在已经把变量公开了,就像下面的 CrazyDart 演示的那样,所以变量声明是这样的:
-
公共字符串 initialPath { get;放; }