2016-07-07 110 views
0

我遇到了“保存”链接按钮触发的问题,并且无所适从。我已经包含了表单和代码隐藏的代码。我已经添加了一些测试,以查看事件是否正在触发,但似乎并非如此。任何帮助表示赞赏。我是新手编码器,所以如果有明显的问题或更好的方法进行,请原谅我。最终目标是更新数据库中给定屏幕信息的条目,然后重新显示更新的信息。LinkBut​​ton在Formview中没有触发的C#OnClick事件ItemTemplate

再次感谢您提前。

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

代码隐藏:

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

你可以做'保护无效SaveButton_Click(对象发件人,EventArgs e) { 抛出新的异常(“我已经点击”); '看看你得到了什么?对不起,因为我看起来很可疑,但你的代码看起来非常有效。 – meJustAndrew

回答

0

你的链接按钮存在一个FormView项模板内侧,可以看到下面这样的话你将无法获得单独控制事件(onclick链接按钮事件)。相反,你需要处理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 Language =“C#”AutoEventWireup =“true”CodeFile =“matter.aspx.cs”Inherits =“matter”%> –

+0

@MikeC,我的错误没有看到您的帖子正确。如果有帮助,请参阅编辑答案。 – Rahul

+0

补充说。 'BUTTON:''CODEBEHIND:'protected void fvdoc_ItemCommand(object sender,FormViewCommandEventArgs e) {e.CommandName ==“Update”) { throw new的异常( “点击”); } 抛出新的异常(“我已被点击”); }'仍然没有射击 –

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

相关问题