使用ASP.NET中的代码后面的变量

Chr*_*ris 5 c# asp.net variables

我在后面的代码中设置变量并在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>
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

编辑:好的,这是代码背后的相关部分

       string schedID = sched.SchedulerInstanceId;
        JobDetail jobDetail2 = sched.GetJobDetail(Request.QueryString["JOB_NAME"], "sched1");
        JobDataMap dataMap2 = jobDetail2.JobDataMap;
        initialPath = dataMap2.GetString("initialPath");
        Response.Write(initialPath);
Run Code Online (Sandbox Code Playgroud)

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");
    }
Run Code Online (Sandbox Code Playgroud)

什么不起作用只是ASP表单中的<%= initialpath%>.它只是没有显示任何东西,就像变量没有分配任何东西

Cra*_*art 12

在代码隐藏中,您需要将其创建为公共属性.然后,您可以在aspx页面中使用它.

代码背后:

public string yourvar { get; set; }
Run Code Online (Sandbox Code Playgroud)

在aspx中:

    <EditItemTemplate>
        <asp:TextBox ID="TextBox6" runat="server" 
            Text='<%= yourvar %>'></asp:TextBox>
    </EditItemTemplate>
Run Code Online (Sandbox Code Playgroud)


Jon*_*nna 3

我在这里看不到的是调用的地方DataBind()。如果它是在设置之前创建的,<%#initialPath%>则将写入其起始值(null,在这种情况下将被写入为空字符串)。如果根本没有做出来,那么<%#initialPath%>永远不会写任何东西。您需要确保DataBind()在适当的时间调用,例如在结束时Page_Load