#asp.net #ajax #c#-4.0 #partial-page-refresh #partial-postback
#asp.net #ajax #c #-4.0 #частичное обновление страницы #частичная обратная передача
Вопрос:
Я использую Uploadify v2.1.4 для загрузки изображений с помощью ASP.Net C # FM 4.0.
На этой странице у меня также есть другие элементы управления, но я хочу, чтобы функциональность была такой, чтобы при загрузке изображений она автоматически обновляла UpdatePanel1 для отображения загруженного изображения
Файл Default.aspx
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatDirection="Horizontal" >
<ItemTemplate>
<br /><img src='http://test.kashmirsouq.com/ImageUploads/<%# Eval("ImageID") %>' width="100px" height="100px" vspace="2" hspace="2" border="1" />
<br /><asp:LinkButton ID="lnkBtnDeleteImage" CommandArgument='<%# Eval("sno") %>' CommandName="Delete" runat="server">
Delete</asp:LinkButton>
<br />
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:SQLConnectionString %>"
SelectCommand="SELECT [sno], [ImageID] FROM [User_Images]">
</asp:SqlDataSource>
</ContentTemplate>
</asp:UpdatePanel>
Пример страницы здесь test.kashmirSouq.com
Я вызываю файл FileUplaad.aspx для загрузки изображения с помощью jQuery
<script type="text/javascript">
$(document).ready(function () {
$('#fuFiles').uploadify({
'uploader': 'Scripts/uploadify.swf',
'script': 'FileUploads.aspx',
'cancelImg': 'Scripts/cancel.png',
'auto': 'true',
'multi': 'true',
'fileExt': '*.jpg;*.gif;*.png',
'buttonText': 'Browse...',
'queueSizeLimit': 5,
'simUploadLimit': 2
});
});
</script>
и в файле FileUpload.aspx.cs я сохраняю файл на сервере и в базе данных,
Мне нужен способ, чтобы я мог обновить updatepanel1 из функции SaveData(), которая находится в FileUpload.aspx.cs
protected int saveData()
{
String strSql = "INSERT INTO HMS_User_Images(ImageID,UserID,ImageCreationDate) ";
strSql = " VALUES ('" filename "','123456789', '" DateTime.Now "')";
int result = DataProvider.intConnect_Select(strSql);
}
Поэтому, когда я загружаю изображения, он должен обновить частичное обновление страницы сетки. Пожалуйста, приведите мне пример, как я могу это сделать, используя C#
Пожалуйста, совет, как я могу сделать этот пример кода, был бы высоко оценен.
С уважением
Ответ №1:
Если вы хотите обновить панель обновления, попробуйте это…
UpdatePanel1.Update();
Если страница включена для частичного отображения страницы, при вызове
Метод обновления, содержимое элемента управления UpdatePanel обновляется в
браузер. Вызовите метод обновления, если у вас есть серверный код, который должен
выполните, чтобы определить, следует ли обновлять элемент управления UpdatePanel.
Если вы планируете использовать метод обновления, установите для свойства UpdateMode значение
Условно. Если вы хотите, чтобы решение об обновлении панели было
определяется в логике сервера, убедитесь, что дочерние триггеры
свойство равно false и что для
панель.В типичном сценарии разработки страницы, если вы определяете триггеры или если свойство ChildrenAsTriggers имеет значение true для элемента управления UpdatePanel, метод обновления автоматически вызывается в течение жизненного цикла страницы.
Если свойство ContentTemplate не определено для элемента управления UpdatePanel, никаких обновлений панели не произойдет.
Комментарии:
1. @ Mayur Borad Как я могу определить «UpdatePanel1.Update();» на странице FileUpload.aspx, когда мой фактический UpdatePanel1 установлен по умолчанию.aspx, не могли бы вы привести мне пример кода
Ответ №2:
Попробуйте показать изображение, используя ответ после события Onupload complete.Итак, когда пользователь, как только он загрузит, вы найдете изображение.
Это сценарий:
<script type="text/javascript">
$(window).load(
function () {
$("#fileInput1").uploadify({
'uploader': 'scripts/uploadify.swf',
'cancelImg': 'images/cancel.png',
'buttonText': 'Browse Files',
'script': 'Upload.aspx',
'folder': 'uploads',
'fileDesc': 'Image Files',
'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
'queueSizeLimit': 9999,
'simUploadLimit': 2,
'sizeLimit': 4000000,
'multi': true,
'auto': true,
'onComplete': function (event, queueID, fileObj, response, data) {
$("#thumbnail").append(response)
},
'onError': function (event, ID, fileObj, errorObj) {
alert(errorObj.type ' Error: ' errorObj.info);
}
});
}
);
</script>
Это обработчик:
<%@ WebHandler Language="VB" Class="UploadVB" %>
Imports System
Imports System.Web
Imports System.IO
Imports System.Drawing
Public Class UploadVB : Implements IHttpHandler
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim postedFile As HttpPostedFile = context.Request.Files("Filedata")
Dim savepath As String = ""
Dim tempPath As String = ""
tempPath = System.Configuration.ConfigurationManager.AppSettings("FolderPath")
savepath = context.Server.MapPath(tempPath)
Dim filename As String = postedFile.FileName
If Not Directory.Exists(savepath) Then
Directory.CreateDirectory(savepath)
End If
If Not Directory.Exists(savepath "thumbs") Then
Directory.CreateDirectory(savepath "thumbs")
End If
postedFile.SaveAs((savepath amp; "") filename)
Dim fullImage As System.Drawing.Image = New System.Drawing.Bitmap((savepath amp; "") filename)
Dim newWidth As Integer = 100
Dim newHeight As Integer = 80
Dim temp As New Bitmap(newWidth, newHeight)
Dim newImage As Graphics = Graphics.FromImage(temp)
newImage.DrawImage(fullImage, 0, 0, newWidth, newHeight)
temp.Save((savepath "thumbs" amp; "") "t_" filename)
context.Response.Write("<a href='" (tempPath amp; "/") filename "'><img src='" tempPath "/thumbs" amp; "/" "t_" filename "'/></a>")
context.Response.StatusCode = 200
'context.Response.Write("OK")
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class
В приведенном выше коде вы можете найти миниатюры, добавленные, как только пользователь загружает, вы найдете миниатюру изображения.
Комментарии:
1. Спасибо, я новичок во всем этом, можете ли вы привести мне пример, основанный на приведенном выше коде, был бы признателен за это