using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace AppManagementConsole
{
public partial class _Default : Page
{
string BuildUploadPath = ConfigurationManager.AppSettings["DirectoryPath"] + "Files/";
string ReleaseNotesUpPath = ConfigurationManager.AppSettings["DirectoryPath"] + "ReleaseNotes/";
protected void Page_Load(object sender, EventArgs e)
{
cpBuildDate.SelectedDate = DateTime.Now;
getBuildData();
}
public void getBuildData()
{
//Select Build List
SqlCommand selectCommand = new SqlCommand("Select * from tblBuildList");
try
{
//Connect to DB
using (SqlConnection conRDB = new SqlConnection(ConfigurationManager.ConnectionStrings["conRDB"].ConnectionString))
{
SqlDataAdapter selectAdapater = new SqlDataAdapter(selectCommand.CommandText, conRDB);
DataSet dsBuilds = new DataSet();
selectAdapater.Fill(dsBuilds);
//Populate Webpage GV
gvDataBind(dsBuilds);
}
}
catch (Exception ex)
{
}
}
public void gvDataBind(DataSet dsBuilds)
{
gvBuildList.Dispose();
gvBuildList.DataSource = dsBuilds;
gvBuildList.DataBind();
}
protected void gvBuildList_RowEditing(object sender, GridViewEditEventArgs e)
{
gvBuildList.PageIndex = e.NewEditIndex;
//Bind data to the GridView control.
getBuildData();
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
//Upload Files
UploadFiles();
//Update SQL Table
AddBuildInfo(txtProduct.Text, txtPlatform.Text, cpBuildDate.SelectedDate, txtPublisher.Text, txtVersion.Text, BuildUploadPath,FileUpBuild.FileName, ReleaseNotesUpPath, FileUpRelease.FileName, txtComments.Text);
}
private void UploadFiles()
{
#region Build
string tempfileDir = @"C:\Publish\TempFileStorage\";
if (FileUpBuild.HasFile)
{
try
{
if (!Directory.Exists(tempfileDir))
{
Directory.CreateDirectory(tempfileDir);
}
FileUpBuild.SaveAs(@"C:\Publish\TempFileStorage\" + FileUpBuild.FileName);
FTP.FtpUpload(BuildUploadPath, FileUpBuild.FileName, tempfileDir + FileUpBuild.FileName);
//FileUpBuild.SaveAs();
//FileUpBuild.FileContent();
}
catch (Exception ex)
{
}
finally
{
File.Delete(@"C:\Publish\TempFileStorage\" + FileUpBuild.FileName);
}
}
#endregion
#region ReleaseNotes
if (FileUpRelease.HasFile)
{
try
{
if (!Directory.Exists(tempfileDir))
{
Directory.CreateDirectory(tempfileDir);
}
FileUpRelease.SaveAs(@"C:\Publish\TempFileStorage\" + FileUpRelease.FileName);
FTP.FtpUpload( ReleaseNotesUpPath, FileUpRelease.FileName, tempfileDir + FileUpRelease.FileName);
//FileUpBuild.SaveAs();
//FileUpBuild.FileContent();
}
catch (Exception ex)
{
}
finally
{
File.Delete(@"C:\Publish\TempFileStorage\" + FileUpRelease.FileName);
}
}
#endregion
}
private void AddBuildInfo(string product, string platform, DateTime builddate, string publisher, string version, string location, string filename, string releaseloc, string releasefile, string comment)
{
try
{
using (SqlConnection conRDB = new SqlConnection(ConfigurationManager.ConnectionStrings["conRDB"].ConnectionString))
{
SqlCommand insertCommand = new SqlCommand("Insert into tblBuildList " +
"Values('" + product + "'," +
"'" + platform + "'," +
"'" + builddate + "'," +
"'" + publisher + "'," +
"'" + version + "'," +
"'" + location + "'," +
"'" + filename + "'," +
"'" + releaseloc + "'," +
"'" + releasefile + "'," +
"'" + comment + "')", conRDB);
conRDB.Open();
insertCommand.ExecuteNonQuery();
getBuildData();
conRDB.Close();
}
}
catch (Exception ex)
{
}
}
protected void btnUpBuild_Click(object sender, EventArgs e)
{
string tempfileDir = @"C:\Publish\TempFileStorage\";
if (FileUpBuild.HasFile)
{
try
{
if (!Directory.Exists(tempfileDir))
{
Directory.CreateDirectory(tempfileDir);
}
FileUpBuild.SaveAs(@"C:\Publish\TempFileStorage\" + FileUpBuild.FileName);
FTP.FtpUpload(BuildUploadPath, FileUpBuild.FileName, tempfileDir + FileUpBuild.FileName);
//FileUpBuild.SaveAs();
//FileUpBuild.FileContent();
}
catch (Exception ex)
{
}
finally
{
File.Delete(@"C:\Publish\TempFileStorage\" + FileUpBuild.FileName);
}
}
}
protected void btnUpRelease_Click(object sender, EventArgs e)
{
string tempfileDir = @"C:\Publish\TempFileStorage\";
if (FileUpRelease.HasFile)
{
try
{
if (!Directory.Exists(tempfileDir))
{
Directory.CreateDirectory(tempfileDir);
}
FileUpRelease.SaveAs(@"C:\Publish\TempFileStorage\" + FileUpRelease.FileName);
FTP.FtpUpload( ReleaseNotesUpPath, FileUpRelease.FileName, tempfileDir + FileUpRelease.FileName);
//FileUpBuild.SaveAs();
//FileUpBuild.FileContent();
}
catch (Exception ex)
{
}
finally
{
File.Delete(@"C:\Publish\TempFileStorage\" + FileUpRelease.FileName);
}
}
}
}
以上是我的代码
以下是我的.aspx页面
<div id="Addnewbuild">
<h3>Add a New Build</h3>
<table>
<tr>
<th>
<asp:Label ID="lblHeader1" runat="server">Product</asp:Label>
</th>
<th>
<asp:Label ID="lblHeader2" runat="server">Platform</asp:Label>
</th>
<th>
<asp:Label ID="lblHeader3" runat="server">Build Date</asp:Label>
</th>
<th>
<asp:Label ID="lblHeader31" runat="server">Publisher</asp:Label>
</th>
<th>
<asp:Label ID="lblHeader4" runat="server">Version #</asp:Label>
</th>
<th>
<asp:Label ID="lblHeader5" runat="server">Build</asp:Label>
</th>
<th>
<asp:Label ID="lblHeader6" runat="server">Release Notes</asp:Label>
</th>
<th>
<asp:Label ID="lblHeader7" runat="server">Comments</asp:Label>
</th>
</tr>
<tr>
<td>
<asp:TextBox ID="txtProduct" runat="server" Width="150px"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="txtPlatform" runat="server" Width="75px"></asp:TextBox>
</td>
<td>
<ew:CalendarPopup ID="cpBuildDate" ControlDisplay="TextBoxButton" Text="Change Date"
runat="server" SelectedDate="" VisibleDate="" Visible="True" Enabled="True" Width="100px">
</ew:CalendarPopup>
</td>
<td>
<asp:TextBox ID="txtPublisher" runat="server" Width="75px"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="txtVersion" runat="server" Width="75px"></asp:TextBox>
</td>
<td>
<asp:FileUpload ID="FileUpBuild" runat="server" />
<!--<asp:Button ID="btnUpBuild" runat="server" Text="Upload Build" OnClick="btnUpBuild_Click" />-->
</td>
<td>
<asp:FileUpload ID="FileUpRelease" runat="server" />
<!--<asp:Button ID="btnUpRelease" runat="server" Text="Upload Release Notes" OnClick="btnUpRelease_Click" />-->
</td>
<td>
<asp:TextBox ID="txtComments" runat="server" Width="100px" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
</table>
<asp:Button ID="btnSubmit" Text="Submit" runat="server" OnClick="btnSubmit_Click" />
</div>
<br />
<br />
<br />
<div id="buildlist">
<h3>Build List</h3>
<asp:GridView ID="gvBuildList" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnRowEditing="gvBuildList_RowEditing" AutoGenerateEditButton="True">
<Columns>
<asp:TemplateField HeaderText="Product">
<ItemTemplate>
<asp:Label ID="lblProduct" runat="server" Text='<%#Eval("ProductName")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtGVProduct" runat="server" Text='<%#Eval("ProductName")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Platform">
<ItemTemplate>
<asp:Label ID="lblplatform" runat="server" Text='<%#Eval("Platform")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtGVPlatform" runat="server" Text='<%#Eval("Platform")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Build Date">
<ItemTemplate>
<asp:Label ID="lblbldDate" runat="server" Text='<%#Eval("BuildDate")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtGVbldDate" runat="server" Text='<%#Eval("BuildDate")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Publisher">
<ItemTemplate>
<asp:Label ID="lblPublisher" runat="server" Text='<%#Eval("Publisher")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtGVPublisher" runat="server" Text='<%#Eval("Publisher")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Version #">
<ItemTemplate>
<asp:Label ID="lblVersion" runat="server" Text='<%#Eval("VersionNumber")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtGVVersion" runat="server" Text='<%#Eval("VersionNumber")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Build">
<ItemTemplate>
<asp:Label ID="lblbldLocation" runat="server" Text='<%#Eval("FileName")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtGVbldLocation" runat="server" Text='<%#Eval("FileName")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Release Notes">
<ItemTemplate>
<asp:Label ID="lblRelease" runat="server" Text='<%#Eval("ReleaseFileName")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtGVRelease" runat="server" Text='<%#Eval("ReleaseFileName")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Comments">
<ItemTemplate>
<asp:Label ID="lblComments" runat="server" Text='<%#Eval("Comments")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtGVComments" runat="server" Text='<%#Eval("Comments")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" ButtonType="Button" />
<asp:CommandField ShowDeleteButton="True" ButtonType="Button" />
<asp:TemplateField HeaderText="Actions">
<ItemTemplate>
<asp:ImageButton ID="btnDwnld" runat="server" ImageURL="Images/hard-drive-download.png" Width="20" Height="20" />
<asp:ImageButton ID="btnEmail" runat="server" ImageURL="Images/email-icon.png" Width="20" Height="20" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
上面是我的GridView代码,我还有大约8个其他列,但我删除了它们。
即使我有行编辑方法来捕获任何编辑,我的页面仍然会抛出错误:
GridView&#39; gvBuildList&#39;已解决的事件RowEditing未被处理。
描述:
执行当前期间发生了未处理的异常 网络请求。请查看堆栈跟踪以获取更多信息 错误以及它在代码中的起源。
异常详细信息:
System.Web.HttpException:GridView&#39; gvBuildList&#39;被解雇的事件 没有处理的RowEditing。
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
HttpException(0x80004005):GridView&#39; gvBuildList&#39;被解雇的事件 没有处理的RowEditing System.Web.UI.WebControls.GridView.OnRowEditing(GridViewEditEventArgs e)+1588857 System.Web.UI.WebControls.GridView.HandleEdit(Int32 rowIndex)+43
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e,Boolean causeValidation,String validationGroup)+611
System.Web.UI.WebControls.GridView.RaisePostBackEvent(字符串 eventArgument)+205
System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 eventArgument)+13
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)+13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +9643314 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 1724
有什么想法吗?
答案 0 :(得分:4)
您可以通过添加空事件来修复它
protected void grd_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
}
答案 1 :(得分:1)
从gridview代码中删除此
AutoGenerateEditButton="True"
这不是必需的。如果您在创建gridview时已经使用了自定义模板。我猜网格视图比您所做的更简单。
<asp:GridView ID="gvBuildList" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnRowEditing="gvBuildList_RowEditing">
<AlternatingRowStyle CssClass="alt"></AlternatingRowStyle>
<Columns>
<asp:BoundField DataField="ProductName" HeaderText="Product Name" SortExpression="ProductName" />
<asp:BoundField DataField="Platform" HeaderText="Platform" SortExpression="Platform" />
<asp:BoundField DataField="BuildDate" HeaderText="Build Date" SortExpression="BuildDate" />
<asp:BoundField DataField="Publisher" HeaderText="Publisher" SortExpression="Publisher" />
<asp:BoundField DataField="VersionNumber" HeaderText="Version #" SortExpression="VersionNumber" />
<asp:BoundField DataField="FileName" HeaderText="Build" SortExpression="FileName" />
<asp:BoundField DataField="ReleaseFileName" HeaderText="Release Notes" SortExpression="ReleaseFileName" />
<asp:BoundField DataField="Comments" HeaderText="Comments" SortExpression="Comments" />
<asp:ButtonField ButtonType="Image" CommandName="Edit" HeaderText="Edit"
ImageUrl="Images/hard-drive-download.png" ShowHeader="True" Text="Edit" />
如果要在gridview中使用自定义模板,则必须使用“命令名称”属性。因为Gridview不会找到Edit事件。
用这个替换你的gridview,你的代码就可以了。
答案 2 :(得分:0)
重建您的应用程序[编译您的代码],您的错误将不复存在。
由于您已在Code中编写代码但未编译。所以gridview没有得到Row_editing事件。
转到 - &gt;构建 - &gt;重建解决方案
答案 3 :(得分:0)
所以,在尝试了一些不同的东西后,最简单的解决方案。
我在pageload中有了gridview绑定。这就是造成这个问题的原因。我所要做的就是将GV绑定移动到
if (!Page.IsPostBack)
{
getBuildData();
}
在Page_Load方法
中答案 4 :(得分:0)
今天,我也遇到了这个问题。一小时后,我注意到Gridview事件选项卡中有两个事件。应注意事件名称:
RowUpdating事件
RowUpdate事件
确保您为代码使用正确的事件。
答案 5 :(得分:0)
GridView'GridView1'触发了未处理的事件RowEditing
只需将 CommandName =“ Edit” 更改为 CommandName =“ RowEdit”
答案 6 :(得分:-1)
只需更改&#34; CommandName&#34;编辑&#34;编辑&#34;或&#34;删除&#34;按钮来自&#34;编辑&#34; to&#34; Editttt&#34; &#34;删除&#34;到&#34; Deleteee&#34; (或其他与你相关的东西,但要确保它不是&#34;编辑&#34;或&#34;删除&#34;)。它会正常工作。