2012-03-08 2 views
1

私はASP.NET C#Webサイトを持っており、ボタンをクリックしたときにページのHTMLから内部HTMLを取得しようとしています。runat = "server"属性を持たないHTML要素を見つけよう

問題:私はFindControl()関数を使用しますが、要素が見つかるとnullを返します。なぜこれが起こっているのですか、私は何が間違っていますか?

マイHTMLページ:ボタンがクリックされたときに実行する

<%@ Page Title="test" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeBehind="test.aspx.cs" Inherits="test" %> 

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="ActualContent"> 
    <div class="regMainContainer mainContainer container"> 
      <!-- Attempting to get the below div --> 
      <!-- Knowtice it does not have runat="server", 
       I would prefer not to do that if I dont need to --> 
      <div id="courseDiv" class="courseContainer"> 
      </div> 
    </div> 
</asp:content> 

は私のコードは、(test.aspx.csファイル内:

HtmlGenericControl d = (HtmlGenericControl)FindControl("courseDiv"); 

答えて

1

にFindControlのみ=」ラナたコントロールを見つけることができます良いニュースはあなたが簡単にパネルにdivを変更し、そのようにデータを追加できることです。

悪いニュースは、これはまだdivのinnerhtmlにアクセスさせないということです。それを他のコントロールのコンテナと見なします。

クライアント側のスクリプトがあること内容を読んで、あなたが使用することはできませんサーバー側のメソッドに

+0

ありがとう、あなたはPanelの方法の例を提供できますか?それは ...

+0

この質問に関する私の答えを見てください:http://stackoverflow.com/questions/9611062/how-to-update-votes-client-side-using-webforms/9611282#9611282 – Evert

1

を渡しできるようになるので、これを行うための最善の方法は、AJAXのいくつかの形式になりますにFindControl runat = "server"とマークされていないものについては、 runat = "server"とマークされていない要素は、実行時に1つの巨大なテキストリテラルとして解析されるためです。あなたは任意のhtml要素にrunat = "server"を追加することができます。

関連する問題