2

スケジュール用のテーブルを作成し、テーブルに div を配置しています。のいずれかをクリックすると、新しい予定を作成できますdiv

divがクリックされたときにアクティブビューを変更しています。データベースで使用できるように div に情報を埋め込む必要があり、どの div がクリックされたかを知りたいです。

どうすればこれを解決できますか? これが私のコードです:

HtmlGenericControl div = new HtmlGenericControl("DIV");
div.Style.Add(HtmlTextWriterStyle.Width, "60px");
div.Style.Add(HtmlTextWriterStyle.MarginTop, "1px");
div.Style.Add(HtmlTextWriterStyle.BackgroundColor, "green");
div.Style.Add(HtmlTextWriterStyle.Height, last * 40 + "px");
div.Attributes.Add("onclick", "somefunction()");
div.Style.Add("cursor", "pointer");
bul.Controls.Add(div);

bulは、DIV を配置したテーブル セルです。

4

3 に答える 3

1

divサーバーコントロールにIDを設定することを忘れないでください

javascriptでサーバーコントロールを参照する方法を説明する次のURLを参照してください。

http://encosia.com/2007/08/08/robust-aspnet-control-referencing-in-javascript/

記事からの抜粋:

$get('<%= yourdiv.ClientID %>')


<script>
  alert('yourdiv has a value of: ' + $get('<%= yourdiv.ClientID %>').value);
</script>
于 2012-08-26T15:09:58.760 に答える
0
> .answer {
width:20px;
height:20px;
border-color:Red;
border:1px;
background-color:Green;

HtmlGenericControl div = new HtmlGenericControl("DIV");
div.ID = "testDiv";
div.Attributes.Add("class", "answer");
div.Attributes.Add("onclick", "somefunction(this)");
this.Controls.Add(div);  // this code shlould be on pageload

 <script language="javascript">
        function somefunction(obj)
        {
            alert(obj.id);
        }

于 2012-08-26T15:36:31.223 に答える
0

IMHO、アプローチについて再考する必要があります。ソリューションを 3 つの異なる部分に分ける必要があると思います。

1- サーバー側コード: 現在の予定に関する情報を取得し、視聴者が作成した新しい予定を保存します。

2- マークアップ コード: @Senfo が提案したように、サーバー側のコードからすべてを生成するのではなく、マークアップの基本的な構成要素を含める必要があります。

3- 通常のビュー モードと作成ビュー モードを切り替えるには、クライアント側のコード (Javascript) を使用する必要があります。

4- クライアント側のコードを使用したくない場合は、C# コードでそれらを処理できるように、div を 2 つの属性で装飾する必要があります。

  • ID (すべての div ごとに一意である必要があります)
  • Runat="Server"属性

私の解決策が完全ではないことは承知していますが、これが宿題の質問であることを考えると、正しい道に導く方がよいと思いますが、これらの原則に従って先に進むことができます。私はあなたがそれを作ることができると思います.

それでもわからない場合は、例を挙げてみますが、私のアドバイスは、深呼吸をして、自分で始めることです:)

于 2012-08-26T15:42:36.343 に答える