C# 如何从Ajaxfileupolad控件读取文本框的值

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

在AjaxFileUpload1的pageupload事件期间,我从页面上的文本框将值分配给变量。问题是,即使没有抛出错误,我也没有从文本框将值分配给变量。我的变量是

    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();也可以看看这个链接