2011-02-08 54 views
0

按鈕佈局asp.net自定義按鈕

Button Layout

我有一個div中3個標籤。我想讓div可點擊並通過點擊div觸發回發。 在essensce我想做一個自定義按鈕,看起來像圖片。到目前爲止,我發現這樣做的唯一方法是讓div onclick事件觸發javascript,或者做一些自定義的usercontrol魔術,我無法使用它。

用戶控制

<div class="meetingContainer" > 
    <div class="meetingCityState"> 
     <asp:Label ID="lblMeetingCityState" runat="server" Text='<%# Eval("City") %>'></asp:Label> 
    </div> 
    <div> 
     <asp:Label ID="lblMeetingDate" runat="server" Text='<%# Eval("MeetingDate") %>'></asp:Label> 
    </div> 
    <div> 
     <asp:Label ID="lblMeetingSite" runat='server' Text='<%# Eval("Location") %>'></asp:Label> 
    </div> 
    </div> 

代碼背後

<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ 
Partial Public Class MeetingButton 
    Inherits System.Web.UI.UserControl 
    Implements System.Web.UI.IPostBackEventHandler 

    Public Event Click As EventHandler 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    End Sub 

    Protected Overridable Sub OnClick(ByVal E As EventArgs) 
    RaiseEvent Click(Me, E) 
    End Sub 

    Public Sub RaisePostBackEvent(ByVal eventArgument As String) _ 
     Implements IPostBackEventHandler.RaisePostBackEvent 

    OnClick(New EventArgs()) 
    End Sub 
End Class 
+0

Bueller?Bueller? – gh9 2011-02-08 17:28:22

回答

-1

長相鏈接一個asp:LinkBut​​ton的會做什麼,我需要thaank你

0

是的,你可以做到這一點,使用__doPostBack方法。您可以使用此方法從服務器創建一個自定義引用:http://msdn.microsoft.com/en-us/library/ms153112(v=vs.80).aspx

否則,您可以手動傳遞這個創建它:

<div id="<Server control's Client ID>" name="<Server control's Unique ID>" onclick="__doPostBack('<unique name>', '<command name and args>');"> 

在服務器上,檢查以下內容收集的事件:

string target = Request.Form["__EVENTTARGET"]; 
if (target != null && target.EndsWith("<id>")) 
{ 
    // do this 
} 

您需要數學的__doPostBack唯一的名稱到用戶控件的UniqueID屬性。
這會自動調用由IPostBackEventHandler定義的方法;實現該接口的任何控制都有其稱爲RaisePostBackEvent方法......不過,我不是100%肯定它適用於用戶控制以同樣的方式...