2017-03-09 13 views
-2

innerHTMLプロパティとInnerTextプロパティASPXは含まれています:表中のは、私は、ASPXファイルウィッヒを持っているdoesnの仕事

<form id="form1" runat="server">  
    <div> 
     <table border = "2" id ="pcInfo" > 
      <tr><td>bla bla</td><td><span id = "idex" runat ="server"></span> </td></tr>.. 

データはJavascriptおよび/またはJScriptのを使用して導入されます。 C#のコードで 、私が使用してこのデータを郵送しよう:

a = ".." + idex.InnerHtml.ToString() + "..";<br /> 
b = "-" + idex.InnerText.ToString() + "-"; 

「......」常にあり、bは常に 『 - 』。この割り当ては、ボタンのクリック方法で行われるので、table/spanのすべての要素の後にいくつかの内容があります。どのようにしてコンテンツを入手できますか?コードを配置する場所はどこですか?表示用の入力フィールドを使用している場合はJavaScriptを使用して生成された

Solutin

コンテンツはちょうど撮影することができます。

+0

あなたはあなたの完全なJavaScriptコードとあなたのMVCコントローラのメソッドを投稿することができます値を取得するサーバーサイド。 –

答えて

0

InnerHtmlは、タグの内側HTMLを取得し、あなたの質問でスパン<span id = "idex" runat ="server"></span>のInnerHtmlを取得していますが、タグ内に何もないので、何も返されません。今ではdivの

のすべてを返します

var html= idex.InnerHtml; 

の背後にあるコードでのように、あなたがテーブルのinnerHTMLプロパティを取得することはできませんので、私はdiv要素を使用するので、私が何か

<div id = "idex" runat ="server"> 
      <table border = "2" > 
       <tr ><td >bla bla</td><td><span>asdfasdf</span></td></tr> 

      </table> 
</div> 

を行います私が欲しいと仮定してみましょうと、テーブルの内側のHTML

0

私の理解によれば、あなたのコードのスパンタグの値にアクセスしようとしています。 "InnerHtml"と "InnerText"の両方からspanタグのテキストを取得することができます。

ここでは、.aspxとその同じ.csファイルのテスト済みコードです。

のDefault.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <table border = "2" id ="pcInfo" > 
      <tr><td></td><td><span id = "idex" runat ="server">my content</span></td></tr> 

     </table> 
     Inner Html= <asp:Label ID="lblSpanInnerHtml" runat="server"></asp:Label> 
     <br /> 
     Inner Text= <asp:Label ID="lblSpanInnerText" runat="server"></asp:Label> 
    </div> 
    </form> 
</body> 
</html> 

Default.aspx.cs:

using System; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!IsPostBack) 
     { 
      lblSpanInnerHtml.Text = idex.InnerHtml; 
      lblSpanInnerText.Text = idex.InnerText; 
     } 
    } 
} 
0

あなたの問題は、要求 - 応答プロセスの誤解から延びています。フォーム要素のみがサーバーにポストバックされます。 Asp.netのwebformsは空想を得て、ViewStateと呼ばれる隠しフォームフィールドにいくつかの状態情報を保持します。

javascriptを使用して非フォーム要素に動的に追加されたものはすべて、本質的にサーバー側コードには見えません。そのデータをサーバーに転送する別の方法が必要です。これを行う最も簡単な方法は、そのデータを隠しフォーム要素に移入し、その価値サーバー側を取り出すことです。

など。

<tr><td></td><td> 
    <span id = "idex" runat ="server">my content</span> 
    <input type="hidden" id="hdnIdx" value="my content"> 
</td></tr> 

次に、既存のjavascriptを変更して非表示フィールドに値を設定します。

はその後

lblSpanInnerText.Text = idex.Value; 
関連する問題