4

これを想像してみてください。

ステップ 1: ASPX ページの読み込み。
ステップ 2: ボタンは、runat サーバー属性を含む id または class タグを持つ html 要素 (div、span など) を作成するスクリプトを起動します。

そして私の問題は、

最終ステップ:私の C# ファイルから、その要素にアクセスして内部の html を取得する方法を教えてください。文字列に保存できますか?

PS: その文字列を使用して、mssql データベースに保存します。

4

3 に答える 3

5

サーバーへの完全なポストバックを行わずに、「実際の」 runat=server 要素/コントロールを作成することはできません。

最善の方法は、ページを送信する直前に、innerHTML を ASP.Net 隠しフィールドに格納するスクリプトを作成することです。その後、この非表示フィールドの値にアクセスしてデータを取得できます。

複数のオブジェクトを動的に作成する場合は、代わりに標準の html 非表示入力フィールドを使用する必要があります。これは、javascript を介して asp.net サーバー コントロールを作成できないためです。

<input type="hidden" name="fieldData_1" value="control 1 html content">
<input type="hidden" name="fieldData_2" value="control 2 html content">

これで、Request.Form オブジェクトからこれらの隠しフィールドにアクセスできるようになります。

Request.Form["fieldData_1"]

これを知っていれば、フォーム データを繰り返し処理し、すべての動的フィールドを処理できます。

foreach (string fieldData in Request.Form)
{
    if(fieldData.Contains("fieldData_"){
        //process the data for each field
    }
}

隠しフィールドを一緒に使用することを避け、__doPostback('', '') メソッドを使用してデータをサーバーに直接渡すこともできます。これはさまざまな方法で実装できるので、http://dopostback.netを参照して、この方法がどのように機能するかを確認してください。

于 2012-05-14T07:28:05.037 に答える
0

タグに属性を追加runat="server"して HTML コントロールにし、その ID で .cs ファイルからアクセスできるようにします

于 2012-05-14T07:20:15.657 に答える
0

HTML 内の要素をサーバーに戻す必要があると思います。私がクライアント関数で行うことは、新しく作成された要素の内部 HTML を取得し、非表示フィールドに格納してから呼び出すことです。__doPostBack('<hidden element id>', '');

于 2012-05-14T07:27:48.027 に答える