2009-05-29 13 views
1

どうすればasp.netのコードの背後にあるHTMLコントロールにアクセスできますか?私は問題を引き起こしているので、 "runat = server"を使用したくありません。サーバー側からhtmlコントロールにアクセス

私は空のhtmlテーブルを作成しました。私のコードからは、< td>を追加します。

助けてください。

おかげで、 Prachi

+0

コードを表示してください。 Codebehindだけでなく、HTMLページの一部が役立ちます。 – shahkalpesh

+0

私はフォローとしてaspxでhtmlテーブルを作成しています。 <テーブルのid = maintable "> 今私はfile.Iがtds.Howを作るために、データベースから値を取得します.csファイルからこの表に列を追加したい、私はコントロールを盗んことができますか? –

+0

それがどのような問題です原因は? – Cerebrus

答えて

1

これはにrunat = "サーバー" なしでは不可能です。

あなたはこれが問題を引き起こしていたと言います。問題の原因を教えてください。


getElementByIdを使用してテーブルにアクセスしていたとしますか?サーバーコントロールのIDは、その内部のコントロールに基づいて変更されます。変更されたIDを取得する必要があります:

var tab = getElementById("<%= myTable.ClientId %>"); 

またはそれに相当するもの。

+0

現在、私は次のコードを使用して、JavaScriptを使ってtdを追加しています。 var tblHeadObj = window.opener.document.getElementById "maintable")。tHead; runatサーバーを作成した後、それは次のようなエラーを投げます。 jscriptエラー:オブジェクトが期待される –

+0

可能です。私の解決策を見てください – Jason

0

runat = server属性は、コードの背後でアクセスする場合は使用する必要があります。

多分、コードビハインドであなたのテーブルにtd/trを追加するいくつかのjavascriptコードを生成することができます。起動時に実行するようにページを登録することができます。

0

にrunat =「サーバ」

テーブルとTR要素に、(これはサーバに要素を露出させるフレームワークに指示されるように)の背後にあるコードがアクセスできる方法はありません。

あなたは実際に何をしようとしていますか? DataGrid,GridViewまたは単純なRepeaterのコントロールを見ましたか?これにより、テーブル構造を定義し、それにコントロールを動的に追加することができます(通常はデータバインディングを使用しますが、アイテムをItemCollectionに追加する方法もあります)。

0

片方向これは、インラインスクリプトとパブリック文字列変数を追加することです。背後にあるコードで、publicクラスレベルの変数を作る:

public String myColumns 

、あなたのPage_Loadイベントでは、文字列としてあなたのHTMLを作成し、myColumns変数に保存します。

protected void Page_Load() { 
//do stuff 
myColumns = someStringWithTDTagsInIt 
} 

その後、あなたに.aspxのページ、次の操作を実行します。

<table id=maintable"><tr><%=myColumns %></tr></table> 

(あなたはそれがボタンクリックまたは何かにロードする場合、またはあなたが好きなイベント)あなたは、Page_Loadイベント内にそれを望んでいたとして、それはあなたのHTMLをレンダリングする必要があります"runat = server"タグを使用しないでください。

これはが推奨するの方法ではありませんが(コントロールは通常より効率的です)、これはあなたが提出した質問に対する有効な解決策になるはずです。

0

単純な例です。

ちょうどあなたは、あなたがアクセスできるようにrunat = "server" を配置します。

htmlコントロールはサーバー側でアクセスできません。 runatサーバーを配置すると、サーバーにアクセスできます。