2009-05-14 3 views
0

Я просто хочу добавить некоторые проверки Javascript, когда элемент вставлен или отредактирован. Единственный способ, которым я это знаю (используя встроенный Javascript), - отключить свойства AutoGenerateXxxButton для DetailsView и сделать свой собственный. Проблемы, которые у меня возникают, заменяют их пользовательскими LinkButtons (и сохраняют действие по умолчанию) и добавляют Javascript к ним. Есть ли способ, которым я могу сделать это легко? Единственный вариант, который я вижу, - это отредактировать шаблон и поместить его в нижний колонтитул или что-то еще.Настройка панели управления DetailsView

Подсказки? Трюки? Совершенно очевидные вещи, которые мне не хватает?

ответ

2

Я наткнулся на эту болтовню, ища другие вопросы по поводу подробного обзора. Что относительно легко сделать, так это превратить это поле в поле шаблона. Здесь какой-то код от поворота удаления командной строки в поле шаблона:

<asp:TemplateField ShowHeader="False"> 
    <ItemTemplate> 
     <asp:LinkButton ID="btnDelete" runat="server" CausesValidation="False" 
         CommandName="Delete" Text="Delete"></asp:LinkButton> 
    </ItemTemplate> 
</asp:TemplateField> 

Вы можете поместить любую разметку вы ссылку в поле шаблона ...

Теперь, чтобы добавить JavaScript для этой кнопки удалить, вы можете сделать это в обработчик событий DataBound для DetailsView:

Protected Sub dgFileDetails_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgFileDetails.DataBound 
    Dim btnDelete As LinkButton = CType(dgFileDetails.FindControl("btnDelete"), LinkButton) 
    If Not btnDelete Is Nothing Then 
     btnDelete.OnClientClick = String.Format("return confirm('Are you sure you want to delete the division {0}?');", dgFileDetails.DataKey.Value) 
    End If 
End Sub 

Я знаю, что это работает на кнопку удаления, но вы должны быть в состоянии принять эту концепцию Фро кнопок вставки и обновления тоже.

+0

C# версии: защищенная недействительный OnDetailsViewDataBound (объект отправитель, EventArgs е) { Кнопки \t LinkButton = this.myDetailView.FindControl ("lnkDelete") в качестве LinkButton; \t if (button! = Null) \t { \t \t string message = "Вы действительно хотите удалить этот элемент?"; \t \t button.OnClientClick = string.Format ("return confirm ('{0}');", message); \t} } –