3

実行時に動的に追加されるdivがページにたくさんあります。動的に追加されたdivのいずれかがクリックされた場合-すべてが私のコードビハインドで同じ関数を呼び出す必要があります。各divは、独自のIDを関数に渡す必要があります。関数はクリックされたdivを識別し、ページ上の他のコントロールを表示/非表示/入力する必要があるため、Webメソッドを使用できません。

乾杯みんな

ヘッダーコントロールなどはここにあります
    <div id="div_Footer" class="HoverEdit" title="Click To Edit" runat="server" onclick="EditDiv(div_Footer)">
        Footer Controls and stuff go here
    </div>

そして、背後のコードで:

Sub EditDiv(ID_ofDiv As String)

    'Do some stuff to the controls on the page
    'Swapping tabs, showing /hiding controls etc.

End Sub
4

3 に答える 3

3

私はVBコードを書くことに慣れていないので、私の例はC#ですが、おそらくそれはあなたが始めるのに役立つでしょう。これを実装するのにおそらく最もクリーンな方法ではありませんが、試してみます。

HTML

 <div id="div_Footer" class="HoverEdit" title="Click To Edit" runat="server" onclick="EditDiv(this)">
        Footer Controls and stuff go here
    </div>

クライアント

<script type="text/javascript">
function EditDiv(s,e){
var id = $(s).attr("id");
__doPostBack(id,id);
}
</script>

サーバ

private void Page_Load(object sender, EventArgs e)
{
   var arg = Request.Form["__EVENTTARGET"]; 'this will be empty on your first page request, but if the user click a div it will cause a postback to server, so this event will be fired again and will contain the div ID.

   if(arg != null)
   {
      string divID = (string)arg;
      'call your method with the argument.
   }
}

これについての詳細はここで見つけることができます:

http://wiki.asp.net/page.aspx/1082/dopostback-function/

于 2012-05-15T08:56:05.860 に答える
0

javascriptからポストバックを作成できます。1つの方法は、ボタンまたはリンクボタンを作成し、それにクリックイベントを追加することです。Style = "Display:none;"を追加します Divにボタンクリックのようにポストバックを強制します。

<div id="div_Footer" class="HoverEdit" title="Click To Edit" runat="server" onclick="EditDiv(this)">
    Footer Controls and stuff go here
</div>
//Javascript
function EditDiv()
{
   // do your code
   __doPostBack('ButtonAID','')
}

良い説明は以下の記事で見つけることができます。 JavaScriptを使用したASP.NETポストバック

于 2012-05-15T09:20:54.463 に答える
0

@Tim Schmelterによって投稿されたリンクの助けを借りて、私はフォローしてみました。これは素晴らしい:

マークアップ:

<div id="div1" runat="server" style="height:100px;width:100px;">click me</div>

コード:

public class MyPage  
      Inherits System.Web.UI.Page
      Implements IPostBackEventHandler

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    div1.Attributes("onclick") = 
         Me.Page.ClientScript.GetPostBackEventReference(Me, "div1_clicki")
End Sub

Protected Sub Div1_Click()
    'do your stuff
    div1.InnerHtml="div1 clicked"
End Sub


'Private Members As IPostBackEventHandler
Public Sub RaisePostBackEvent1(ByVal eventArgument As String) Implements 
                    IPostBackEventHandler.RaisePostBackEvent
    If eventArgument = "div1_click" Then
            div1_click()
        End If
    End If
End Sub
于 2012-05-15T09:03:44.260 に答える