пользовательские кнопки asp.net - PullRequest
0 голосов
/ 08 февраля 2011

Расположение кнопок

Button Layout

У меня есть 3 метки внутри div.Я хочу сделать div активируемым и активировать обратную передачу от нажатия на div. В сущности, я хочу сделать пользовательскую кнопку, которая выглядит как на картинке .До сих пор единственный способ, который я обнаружил в этом - либо наличие javascript-события триггера div onclick, либо использование некоторой пользовательской магии управления пользователями, которую я не могу заставить работать.

Контроль пользователя

<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

Ответы [ 2 ]

0 голосов
/ 08 февраля 2011

выглядит ссылка asp: linkbutton будет делать то, что мне нужно, спасибо вам

0 голосов
/ 08 февраля 2011

Да, вы можете сделать это, используя метод __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%, что он работает так же, как и для пользовательских элементов управления ...

...