![](/img/trans.png)
[英]How to display word 2007 document in web browser control using asp.net web application?
[英]ASP.NET: How to user the UploadFile Control inside ListView Control for uploading document in the web application?
我正在使用ASP.NET開發Web應用程序。 現在,我正在執行管理任務,我想讓管理員能夠上載將在Web應用程序頁面之一上顯示的新聞通訊。 我正在嘗試在ListView中使用ListView控件和UploadFile控件。 一切都以這種方式正常工作,除了代碼中有問題之外,這是我無法上載任何內容並將其顯示在listView中的方式。
部分來自ASP.NET代碼:
<asp:ListView ID="ListView1" runat="server" DataKeyNames="NewsletterID"
DataSourceID="SqlDataSource1" InsertItemPosition="LastItem"
oniteminserting="ListView1_ItemInserting">
<InsertItemTemplate>
<tr style="">
<td>
<asp:ImageButton ID="InsertButton" ImageUrl="images/insert.png" Width="20px" runat="server" CommandName="Insert" />
<asp:ImageButton ID="CancelButton" ImageUrl="images/clear3.png" Width="20px" runat="server" CommandName="Cancel" />
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Bind("Username") %>' OnPreRender="LoadUsername" />
</td>
<td>
<asp:TextBox ID="NewsletterTitleTextBox" runat="server"
Text='<%# Bind("NewsletterTitle") %>' />
</td>
<td>
asp:FileUpload ID="fileUpload1" runat="server" size="10" />
<asp:HiddenField ID="HiddenField2" runat="server" Value='<%# Bind("Url") %>' />
</td>
</tr>
</InsertItemTemplate>
<ItemTemplate>
<tr style="">
<td>
<asp:ImageButton ID="DeleteButton" ImageUrl="images/delete.png" Width="20px" runat="server" CommandName="Delete" />
<asp:ImageButton ID="EditButton" ImageUrl="images/edit.png" Width="20px" runat="server" CommandName="Edit" />
</td>
<td>
<asp:Label ID="NewsletterTitleLabel" runat="server" Text='<%# Eval("NewsletterTitle") %>' />
</td>
<td>
<a href='<%# Eval("Url") %>' target="_blank">
<asp:Label ID="UrlLabel" runat="server" Text='<%# Eval("Url") %>' />
</a>
</td>
</tr>
</ItemTemplate>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
DeleteCommand="DELETE FROM [Newsletter] WHERE [NewsletterID] = @NewsletterID"
InsertCommand="INSERT INTO [Newsletter] ([NewsletterTitle], [Url], [Username]) VALUES (@NewsletterTitle, @Url, @Username)"
SelectCommand="SELECT Newsletter.NewsletterID, Newsletter.NewsletterTitle, Newsletter.Url, Newsletter.Username FROM Newsletter INNER JOIN employee ON Newsletter.Username = employee.Username"
UpdateCommand="UPDATE [Newsletter] SET [NewsletterTitle] = @NewsletterTitle, [Url] = @Url, [Username] = @Username WHERE [NewsletterID] = @NewsletterID">
<DeleteParameters>
<asp:Parameter Name="NewsletterID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="NewsletterTitle" Type="String" />
<asp:Parameter Name="Url" Type="String" />
<asp:Parameter Name="Username" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="NewsletterTitle" Type="String" />
<asp:Parameter Name="Url" Type="String" />
<asp:Parameter Name="NewsletterID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
修改后的代碼(在C#中):
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LoadUsername(object sender, EventArgs e)
{
((HiddenField)sender).Value = Service.User.ID;
}
protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)
{
ListView lv = (ListView)sender;
FileUpload fUpload = (FileUpload)lv.InsertItem.FindControl("fileUpload1");
//string path = ("UploadedPix\\" + fUpload.FileName);
//var tempPath = "some-temp-path-";
var tempFile = fUpload.FileName;
if (fUpload.HasFile)
{
try {
fUpload.SaveAs(Server.MapPath("~/") + tempFile);
HiddenField hField= (HiddenField)lv.InsertItem.FindControl("HiddenField2");
}
catch(Exception ex){
e.Cancel = true;
}
}
}
修改了一些代碼后,我得到了以下錯誤:
無法將值NULL插入表'psspdb.dbo.Newsletter'的列'Url'中; 列不允許為空。 INSERT失敗。 該語句已終止。
該ListView綁定到數據庫中的Newsletter表。 該表的結構如下:NewsletterID,NewsletterTitle,URL,用戶名
用戶名是Usre表中用戶名的外鍵。 時事通訊將為pdf格式。 我想要的是讓管理員指定新聞簡訊的標題,該標題將在用戶單擊此鏈接以下載或預覽新聞簡訊之前顯示給用戶。
該錯誤很容易解釋。 插入時url字段為空白。 嘗試使url字段接受空值。 然后嘗試插入/上傳,看看是否可行。 知道上傳有效后,您可以返回,然后處理url字段和值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.