【问题标题】:asp.net cs variable in aspx pageaspx 页面中的 asp.net cs 变量
【发布时间】:2013-03-28 16:11:09
【问题描述】:

请帮忙。我有一个带有 iframe 的 aspx 页面,我正在尝试将一个名为“pageId”的变量从我的代码中传递给它。我查看了 SO 和其他网站上的各种示例,大多数都向其他人建议这是一个数据绑定问题,我已经完成了一些示例。也许我不能像我尝试在 iframe 中那样使用变量?

我已经介绍了 get/set 和 public 属性,但是有点迷失。请有人帮我指出正确的用语吗?

aspx 页面

<iframe width="690" height="600" src="https://myserver.com/Index.php?pageId=<%=pageId%>" frameborder="0" scrolling="yes" style="border-width: 0px;"></iframe> 

aspx.cs 页面

protected String pageId { get; set; }

//private string pageId;
//public String pageId { get {return pageId; } }

protected void Page_Load(object sender, EventArgs e)
{
    string pageId = 'Y2840'; //this is generated from my db and I know the data is being stored in here as I have Response.Write(pageId)   
}

【问题讨论】:

  • 您遇到的错误是什么?或者什么没有发生?
  • 我没有这样的错误,但 myserver.com/Index.php 不显示 pageId 的值。好像里面什么都没有,但是当我回复写有
  • 是 FormView 中的 iframe 吗?否则可能更容易在 iframe 上设置 id 并在代码隐藏中设置 src。
  • iframe 在标准表单标签内?我会研究 FormView

标签: c# asp.net


【解决方案1】:

您的私有变量和公共属性具有相同的名称。尝试在您的属性名称中使用大写字母 P。也不要在 Page_Load 中声明一个新的变量 pageId。 PageId 为空,因为您设置的是本地 Page_Load 方法变量,而不是类级别变量。

private string pageId;
public string PageId { get {return pageId; } }

protected void Page_Load(object sender, EventArgs e)
{
    pageId = 'Y2840';  
}

在您的 aspx 页面中:

<%=PageId%>

【讨论】:

  • 很奇怪,您是否从 Page_Load 方法中删除了字符串?
  • 如果我只是将 添加到我的 aspx 页面,变量就会显示出来。但是它没有通过 iframe 中的我的服务器。我想我会尝试 formview 方法。哦,这么近。
【解决方案2】:

方法 1.

<iframe runat="server" id="myiframe" width="690" height="600"      
frameborder="0" scrolling="yes"     style="border-width: 0px;"></iframe> 

代码隐藏:

myiframe.src="https://myserver.com/Index.php?pageId=" + pageId;

方法 2.

将 iframe 放入 formview 并给它一个数据源。然后使用您现有的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    相关资源
    最近更新 更多