2016-07-07 6 views
0

У меня возникла проблема с моей стрелкой «save» linkbutton и я в недоумении. Я включил код для формы и кода. Я добавил несколько тестов, чтобы узнать, стреляет ли событие, и похоже, что это не так. Любая помощь приветствуется. Я новичок-кодер, поэтому извините меня, если есть очевидные проблемы или лучший способ продолжения. Конечная цель - обновить запись в базе данных для данной информации о экране, а затем повторно отобразить обновленную информацию.LinkButton C# Событие OnClick не срабатывает в Formview ItemTemplate

Снова благодарим вас заранее.

UPDATE: I have included the FULL-ish CODE: (removed the sensitive info) 

CodeBehind:

using System; 
using System.Configuration; 
using System.Collections.Generic; 
using System.Data; 
using System.Data.SqlClient; 
using System.Linq; 
using System.Text; 
using System.Text.RegularExpressions; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class matter : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     ...   
    } 

    protected void fvdoc_ItemCommand(object sender, FormViewCommandEventArgs e) 
    { 
     if (e.CommandName == "Update") 
     { 
      throw new Exception("Clicked"); 
     } 
     throw new Exception("i've been Clicked"); 
    } 
} 

PAGE:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="matter.aspx.cs" Inherits="matter" %> 

<!DOCTYPE html> 

<html> 
<head> 
     <title>Wasatch Client Matter Index</title> 
     <link rel="shortcut icon" href="~/favicon.ico" type="image/x-icon" /> 
     <meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1, user-scalable=no"/> 

     <!-- Latest compiled and minified CSS --> 
     <link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Ubuntu+Condensed' type='text/css' /> 
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous" /> 
     <link rel="stylesheet" href="Content/themes/Site.css" /> 
     <!-- Latest compiled JavaScript --> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"/> 

    </head> 
<body> 
    <div class="navbar"> 
      <div class="row"> 
       <h1 class="col-lg-8 col-lg-offset-2 text-center " style="align-content:center;">Matter Index </h1> 
      </div> 
     </div> 

    <div class="container-fluid"> 
    <form id="form1" runat="server"> 
     <div class="row"> 
      <div class="col-lg-10 col-lg-offset-1 form-group"> 
       <asp:FormView ID="fvdoc" runat="server" DataSourceID="gvdb" OnItemCommand="fvdoc_ItemCommand"> 
        <ItemTemplate> 
         <h2 class="col-md-12"><asp:Label ID="tbname" runat="server" Text=<%# Bind("docid") %> /> - <asp:Label ID="lbID" runat="server" Text=<%# Bind("sName") %> /></h2> 

           <div class="left col-md-10"> 
            <legend>Matter Info:</legend> 
             <div class="form-group"><asp:Label runat="server" Text="Matter" AssociatedControlID="dcname"/> 
             <asp:TextBox ID="dcname" runat="server" CssClass="form-control" Text=<%# DataBinder.Eval(Container.DataItem,"sDocname") %> Enabled="true"/></div> 
           </div> 

           <div class="left col-md-10"> 
            <hr /> 
             <div class="form-group"><asp:Label runat="server" Text="Notes/Comments" AssociatedControlID="dcnotes" /> 
             <asp:TextBox ID="dcnotes" runat="server" Rows="3" TextMode="MultiLine" Text=<%# Bind("sdocdesc") %> Enabled="true"/></div> 
           </div> 

           <div class="left col-md-6 col-md-offset-5 txsmall"> 
            <asp:Label runat="server" Text="Filed: " Font-Bold="true" /><asp:Label ID="lblfiledate" runat="server" Text=<%# Bind("dtFiledate") %> CssClass="txsmall" Font-Italic="true" /> 
            <asp:Label runat="server" Text="Modified: " Font-Bold="true" /><asp:Label ID="lblmodify" runat="server" Text=<%# Bind("dtLastModified") + " - " + Bind("susermodified") %> CssClass="txsmall" Font-Italic="true"/> 

            <asp:Label runat="server" CssClass="txsmall" id="lbltest"/> 
           </div> 
           <div class="clear-fix col-md-12"> 
            <div class="form-group"> 
             <asp:LinkButton runat="server" Text="Save" ID="SaveButton" CommandName="Update" CssClass="clear-fix btn btn-primary" />&nbsp; 
             <asp:LinkButton runat="server" Text="Move" ID="MoveButton" CssClass="clear-fix btn btn-primary" CausesValidation="False" href="m.aspx" />&nbsp; 
             <asp:LinkButton runat="server" Text="Home" ID="HomeButton" CssClass="clear-fix btn btn-primary" CausesValidation="False" href="default.aspx"/> 
            </div> 
           </div> 
        </ItemTemplate> 

       </asp:FormView> 
      </div> 
     </div> 
     <hr class="col-lg-10 col-lg-offset-1" /> 

    </form> 

    </div> 
    ... 
</body> 
</html> 
+0

Вы говорите, что «это не похоже». Какое тестирование вы пробовали? Вы пытались добавить точку прерывания? – meJustAndrew

+0

Да. Я использовал точки останова, raiseerror и т. Д. –

+0

Можете ли вы сделать 'protected void SaveButton_Click (отправитель объекта, EventArgs e) { throw new Exception (« Я нажал »); } 'и посмотреть, что вы получаете? Извините, потому что я выгляжу настолько подозрительно, но ваш код выглядит вполне корректным. – meJustAndrew

ответ

0

Ваша кнопка ссылка присутствует в шаблоне FormView элемента, как можно увидеть ниже, и, таким образом, вы не получите отдельного события управления (onclick событие linkbutton). Скорее всего вам нужно обрабатывать FormView.ItemCommand и сделать вашу обработку как

<asp:FormView ID="fvdoc" runat="server" 
DataSourceID="gvdb" onitemcommand="itemCommandClick"> 

<ItemTemplate> 

....... 
<asp:LinkButton runat="server" Text="Save" ID="SaveButton" CommandName="Update" ......... 

В коде за ручку этого, как

void itemCommandClick(Object sender, FormViewCommandEventArgs e) 
    { 
    if (e.CommandName == "Update") 
    { 
     LinkButton button = e.CommandSource as LinkButton; 
     //Do rest of the processing 
    } 
} 
+0

<% @ Page Язык = "C#" AutoEventWireup = "true" CodeFile = "matter.aspx.cs" Inherits = "matter"%> –

+0

@MikeC, мой плохой не видел ваше сообщение должным образом. См. Отредактированный ответ, если это помогает. – Rahul

+0

Добавил это. '' BUTTON: ' 'CodeBehind:' защищен недействительным fvdoc_ItemCommand (объект отправителя, FormViewCommandEventArgs е) { если (e.CommandName == "Обновление") { певд Исключение ("щелчок"); } throw new Exception («Я был нажат»); } 'все еще не стрелял –

0

Ваш Интернет FormView пропускает EditItemTemplate, например, так:

  <asp:FormView ID="fvdoc" runat="server" DataSourceID="gvdb" OnItemCommand="fvdoc_ItemCommand"> 
       <ItemTemplate> 
        <!--... Use readonly controls like Label etc...--> 
        <asp:LinkButton runat="server" Text="Save" ID="EditButton" CommandName="Edit" CssClass="clear-fix btn btn-primary" /> 
       </ItemTemplate> 
       <EditItemTemplate> 
        <!--... Use editable controls like TextBox etc...--> 
        <asp:LinkButton runat="server" Text="Save" ID="SaveButton" CommandName="Update" CssClass="clear-fix btn btn-primary" /> 
       </EditItemTemplate> 
      </asp:FormView> 

Для нажмите кнопку «Изменить», перейдите в режим «Редактирование», а затем «Обращайтесь к кнопке« Сохранить », чтобы сохранить новые значения.

Для получения дополнительной информации см. MSDN docs.

 Смежные вопросы

  • Нет связанных вопросов^_^