-1

以下のコードを使用して、このコード ファイルのページの div を変更しました。

HtmlGenericControl divTest = Page.FindControl("test") as HtmlGenericControl;   
divTeste.InnerText = "tested";

しかし今、私は別のページを変更したいと思っています。例: default.aspx コード ビハインドは、test.aspx の div 内部テキストを変更します ...

上記のコードは流用されていません。永続的な変更が必要です。どのようなコードにする必要がありますか?

どうすればいいですか?

4

1 に答える 1

1

ASP.NET の仕組みを理解する必要があります。ASP.NET の概要

Default.aspx を使用していて、Test.aspx に移動しない場合は、Test.aspx で Default.aspx の値を使用できますが、現在のページから別のページを変更することはできません。(実際には、データベースにデータを書き込み、後で変更したいページのそのデータにアクセスすることで可能ですが、あなたの例では、そのようなものを探しているとは思いません)

私が考えることができるあなたの例に最も近いのは、クエリ文字列を使用することです。

Default.aspx マークアップ

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

Default.aspx コードビハインド

protected void Button1_Click(object sender, EventArgs e)
{
    Response.Redirect("Test.aspx?DivMSG=Hello");
}

Test.aspx マークアップ

<div id="MyTestDiv" runat="server">

</div>

Test.aspx コード ビハインド

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        MyTestDiv.InnerText = Request.QueryString["DivMSG"];
    }
}

アップデート:

永続化する 1 つの方法は、データベースに書き込むことです。簡単な例ですが、データベースコードを実行する必要があります

Default.aspx マークアップ

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

Default.aspx コードビハインド

protected void Button1_Click(object sender, EventArgs e)
{
    string messageToWriteToTestDiv = TextBox1.Text;

    // Code: to write messageToWriteToTestDiv to the database
}

Test.aspx コード ビハインド

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        string myMessage = "";

        // Code: string myMessage = Get Message from Database to write to div

        MyTestDiv.InnerText = myMessage;
    }
}

Test.aspx マークアップ

<div id="MyTestDiv" runat="server">

</div>
于 2012-12-03T02:57:57.193 に答える