2011-02-08 111 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%肯定它适用于用户控制以同样的方式...