客户端和服务器端调用asp按钮的问题
问题描述:
我想使用客户端代码设置Image控件的图像URL,并使用C#代码将图像保存到服务器。以下是我已经实现了:客户端和服务器端调用asp按钮的问题
<asp:Button ID="btnImageUpload" OnClick="btnImageUpload_Click" runat="server" Text="Preview" CausesValidation="false" OnClientClick="Image_View();"/>
C#代码:
protected void btnImageUpload_Click(object sender, EventArgs e)
{
if (Directory.Exists(@"C:\\Images"))
SaveImage_Server();
else
{
Directory.CreateDirectory(@"C:\\Images");
SaveImage_Server();
}
}
public void SaveImage_Server()
{
try
{
if (FlUpldImage.PostedFile.ContentLength > 0)
{
String fn = Convert.ToString(DateTime.Now) + Path.GetFileName(FlUpldImage.FileName);
if (fn.Contains('/'))
{
fn = fn.Replace("/", "");
}
if (fn.Contains(':'))
{
fn = fn.Replace(":", "");
}
if (fn.Contains(" "))
{
fn = fn.Replace(" ", "");
}
String Saved_ImagePath = @"C://Images/" + fn; // making the path with created dynamically folder name
FlUpldImage.SaveAs(Saved_ImagePath);
HidnLocalImageURL.Value = Saved_ImagePath;
}
}
catch (Exception re)
{
}
}
的JavaScript
function Image_View() {
// __doPostBack('<%= btnImageUpload.ClientID %>', '');
// var clickButton = document.getElementById("<%= btnImageUpload.ClientID %>");
// clickButton.click()
var idFlUpload = '<%= FlUpldImage.ClientID %>';
var fu1 = document.getElementById(idFlUpload);
var idImgCntrl = '<%= imgCorrect.ClientID %>';
var ImgCntrl = document.getElementById(idImgCntrl);
alert("You selected " + fu1.value);
ImgCntrl.setAttribute('src', fu1.value);
}
现在我的问题是,一旦服务器端代码执行页被刷新并且使用JS设置为图像控件的链接被重置为默认值。
我怎样才能得到这个工作,其中图像也得到保存和图像的URL属性也通过JS设置。
如果还有其他方法可以实现这一点,请让我知道。提前致谢!
答
你也必须在服务器上设置它。您可以使用隐藏字段保存的URL和访问服务器隐藏字段,以便获得url设置mgCntrl.ImageUrl
在HTML
<input type="hidden" runat="server" id="hdnImageSrc" />
在客户端的JavaScript
hdnImageSrc = document.getElementById('<%= hdnImageSrc.ClientID %>');
mgCntrl.setAttribute('src', fu1.value);
hdnImageSrc.value = fu1.value;
在服务器端代码
mgCntrl.ImageUrl = hdnImageSrc.Value;