【问题标题】:How To Pass Dynamically created value into another page..?如何将动态创建的值传递到另一个页面..?
【发布时间】:2014-01-10 12:22:30
【问题描述】:

我正在“tree.aspx.cs”页面后面的代码中动态创建内容和按钮

sbmainTbl.AppendFormat("<tr><td><div class=\"a\">{0}<div class=\"details\"<p id=\"p\">{1}</p><ul><li>Parent-UnitId:{2}</li><li>Address :{3}</li><li>City: {4}</li><li>EmailId: {5}</li><li>PhoneNo: {6}</li><li>FaxNo: {7}</li><li><input type=\"button\" value=\"ADD\"  onclick=\"f2();\" /></li></ul></div></div></div></td></tr>",
            CellText(dtparent.Rows[0]["UnitName"].ToString()),
            CellText(dtparent.Rows[0]["UnitName"].ToString()),
            CellText(dtparent.Rows[0]["ParentUnitId"].ToString()),
            CellText(dtparent.Rows[0]["Address"].ToString()),
            CellText(dtparent.Rows[0]["City"].ToString()),
            CellText(dtparent.Rows[0]["EmailId"].ToString()),
            CellText(dtparent.Rows[0]["PhoneNo"].ToString()),
        CellText(dtparent.Rows[0]["FaxNo"].ToString()));

现在我有了另一个名为“Add.aspx Page”的页面 在那个页面我有文本框

<asp:TextBox ID="txtunitname" runat="server" CssClass="textbox"></asp:TextBox>

现在我只想点击“tree.aspx”页面上的动态创建按钮,“unitname(动态创建值)”将通过“Add.aspx”页面和文本框应填写单位名称。

请帮助我, 谢谢。

【问题讨论】:

  • 我们是在谈论两个浏览器选项卡/窗口中的两个页面吗?还是调用tree.aspx,按一个按钮并导航到add.aspx?
  • 您可以将值存储在sessions中,并在另一个页面中获取会话值。
  • 我调用 tree.aspx 页面并按下动态创建按钮我将导航到 add.aspx 页面。
  • 那么,要么按照@Ravimalya 的建议将值写入 Session,要么在 Query Parameter 中传递值。
  • 问题是我动态创建的内容在
    中,而
    在页面中出现了很多次,每次它都有不同的值,这就是我创建动态按钮的原因沿着这个并单击该按钮,该特定
    中的值导航到 Add.aspx 页面。

标签: html asp.net c#-4.0


【解决方案1】:

要使用 asp.net 传递值,您需要遵循 asp.net 的方式。

首先在第一页上将该值放在页面控件上,我更喜欢在您的情况下使用隐藏字段,该字段也可以回发到任何页面。

然后将值添加到该字段

ValueHiddenField.value = CellText(dtparent.Rows[0]["UnitName"].ToString())

你还创建了一个公共字段,以便第二页可以阅读它

public string ValueHiddenField
{
    get
    {
        return ValueHiddenField.value;
    }
}

然后您对按钮说使用按钮的PostBackUrl 字段返回到第二页。

现在这是您从第二页获取数据的方式:
在重定向页面上,将 aspx 上的上一页声明为:

<%@ Reference Page ="~/PreviousPageName.aspx" %>

在第二页后面的代码中,您得到的值为:

if (Page.PreviousPage != null)
{
    if (Page.PreviousPage is PreviousPageClassName)
    {
        Label1.Text = ((PreviousPageClassName)Page.PreviousPage).ValueHiddenField;
    }
    else
    {
        Label1.Text = "no value";
    }
}
else
    Label1.Text = "no value from previous page";

类似的答案: cross page posting
Cross-page posting. Is it a good pratice to use PreviousPage in Asp.net?

【讨论】:

  • 嗨@Aristos 我也在做同样的事情,但问题是我得到 Page.PreviousPage = null 所以不能进入第一个循环。帮我解决它
  • @akvickyit7 您也可以使用Form[] 直接读取所有发布的值。
猜你喜欢
  • 2018-09-13
  • 2015-12-17
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多