C# 如何从Ajaxfileupolad控件读取文本框的值
在AjaxFileUpload1的pageupload事件期间,我从页面上的文本框将值分配给变量。问题是,即使没有抛出错误,我也没有从文本框将值分配给变量。我的变量是C# 如何从Ajaxfileupolad控件读取文本框的值,c#,asp.net,C#,Asp.net,在AjaxFileUpload1的pageupload事件期间,我从页面上的文本框将值分配给变量。问题是,即使没有抛出错误,我也没有从文本框将值分配给变量。我的变量是 string scn = txtSCN.Text; string line1 = txtLineitem.Text; string aging1 = txtAging.Text; 知道为什么AjaxFileUpload1\u UploadComplete无法读取文本框值吗 我的cs代码是: prote
string scn = txtSCN.Text;
string line1 = txtLineitem.Text;
string aging1 = txtAging.Text;
知道为什么AjaxFileUpload1\u UploadComplete
无法读取文本框值吗
我的cs代码是:
protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
string c = System.IO.Path.GetFileName(e.FileName);
string dpath = "~/Profile/Images/";
string scn = txtSCN.Text;
string line1 = txtLineitem.Text;
string aging1 = txtAging.Text;
AjaxFileUpload1.SaveAs(MapPath(Path.Combine(dpath,c)));
dpath = dpath + c;
string str1 = ConfigurationManager.ConnectionStrings["ProTracConnGMCH"].ConnectionString;
SqlConnection cn = new SqlConnection(str1);
cn.Open();
string sql = "Update tbNoquoteFollowupupdate set MailreceivedURL = '" + dpath + "', chkMailreceived = 1 , Buyername = '" + buyername + "' where scn = '" + scn + "' AND lineItem = '" + line1 + "' and Aging ='" + aging1 + "' ";
SqlCommand cmd = new SqlCommand(sql, cn);
int i = cmd.ExecuteNonQuery();
if (i > 0)
{
// AjaxFileUpload1.SaveAs(Path.Combine(dpath, e.FileName));
//AjaxFileUpload1.SaveAs(MapPath(dpath));
}
cn.Close();
BindGridviewData1();
cn.Open();
string cmd2 = "Insert Into tbMulitmailsreived (scn, lineItem,followupdate, Aging,MailreceivedURL) Values ('" + scn + "', '" + line1 + "','" + DateTime.Now + "','" + aging1 + "','" + dpath + "')";
SqlCommand sqlCommand2 = new SqlCommand(cmd2, cn);
sqlCommand2.ExecuteNonQuery();
cn.Close();
}
请将文本框中的值放入会话中,因为您可以从上传中获取会话变量,所以所有内容都将以这种方式工作 您可以自定义AjaxFileUpload控件,并将文本框值传递给UploadCompleted事件处理程序,如下所示:
function uploadStarted(sender, args) {
var latitude = $get("<%= tbUploaderLat.ClientID %>").value;
var longitude = $get("<%= tbUploaderLon.ClientID %>").value;
sender.contextKeys = { "latitude": latitude, "longitude": longitude };
}
函数上载已启动(发送方,参数){
变量纬度=$get(“”).value;
变量经度=$get(“”).value;
sender.contextKeys={“纬度”:纬度,“经度”:经度};
}
之后,您可以在UploadComplete处理程序中获取纬度和经度值:
protected void AjaxFileUpload1_OnUploadComplete(object sender, AjaxFileUploadEventArgs file)
{
if (!string.IsNullOrEmpty(file.ContextKeys))
{
var longLat = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Dictionary<string, string>>(file.ContextKeys);
var longitude = longLat["longitude"];
var latitude = longLat["latitude"];
}
//code to save file
}
protectedvoid AjaxFileUpload1\u OnUploadComplete(对象发送方,AjaxFileUploadEventArgs文件)
{
如果(!string.IsNullOrEmpty(file.ContextKeys))
{
var longLat=new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(file.ContextKeys);
var经度=longLat[“经度”];
var纬度=朗拉特[“纬度”];
}
//保存文件的代码
}
我建议您在无法检索文本框值时阅读,因为这是部分回发
,因此视图状态
将不可用于控件。您可以使用会话获取早期回发上的文本框值。当我给出会话变量时,错误显示:名称“variable”在当前上下文中不存在尝试使用字符串var=HttpContext.current.session[“variable”].ToString();也可以看看这个链接