0

ASP.NET とユーザー コントロールは初めてです。C# コードから JavaScript 配列を生成しようとしています。

メインの .aspx ページには次のものがあります。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="main.aspx.cs" Inherits="main" %>
<%@ Register Src="~/table.ascx" TagPrefix="uc1" TagName="myTable" %>

次に、私のtable.asc.csにこれがあります:

protected void Page_Load(object sender, EventArgs e)
{
    (...)
    this.LoadDataFromDB();
    (...)
}

private void LoadDataFromDB()
{
    (...)
    Response.Write(array);
    (...)
}

私の問題<html>は、タグの前に配列が書き込まれていることです。それでも問題なく動作しますが<head>、たとえばタグ内にどのように配置できますか?

ありがとうございました

アップデート:

これをmain.aspxに追加しました

<asp:Literal ID="Literalarray" runat="server" Mode="PassThrough"  Text="" /> 

そしてこれを私のascx.csに:

   Literal Literalarray= new Literal();
   Literalarray.Text = output;

私は何が欠けていますか?

4

2 に答える 2

1

ascx.cs のこのコード:

   Literal Literalarray= new Literal();
   Literalarray.Text = output;

次のようにする必要があります。

   Literalarray.Text = output;

デザイナー ファイルとして Page_Load にある必要があるものは、リテラル型を宣言し、そのスペースを割り当てます。新しいものを宣言することで、古いものを隠すことができます。また、JavaScript 配列を生成している場合は、出力の一部としてスクリプト タグもリテラルとして生成しても、結果の周りの装飾はあまり行われないことに注意してください。


おそらく、main.aspx の頭にリテラルを入れて、そこにデータをロードすることをお勧めします。

table.ascx.cs で以前に行ったようにリテラルを作成し、head タグに「runat=server」属性があると仮定してそれをページの head に追加して、背後のコードを実行できるように、動的コントロールを実行することもできます。これを使って。テーブルのコード ビハインドでは、次のようなことができると確信しています。

   Literal Literalarray= new Literal();
   Literalarray.Text = output;
   this.Page.head.AddControl(Literalarray);
于 2013-07-02T15:43:13.097 に答える