我的aspx页面中有一个隐藏变量,如下所示。
<input type="hidden" value="" runat="server" id="homeExcelData" filename=""/>
点击一个按钮,iam做一个form.Sumbit();
在提交之前,我正在设置隐藏控件的属性,如下所示。
document.getElementById("homeExcelData").attributes["filename"] = "test.xls";
$("#homeExcelData").attr("filename","test.xls");
$("#homeExcelData").prop("filename","test.xls");
alert($("#homeExcelData").attr("filename"));
$("#homeExcelData").val(excelData);
在后面的代码中,在回发期间,我可以通过我在javascript中设置的homeExcelData.Value
获取excelData。
但属性“filename”的值是空字符串(而不是null)而不是“test.xls”。
请帮我解决。
服务器端代码:
string fileName = homeExcelData.Attributes["filename"] ?? "report.xls";
答案 0 :(得分:2)
为什么您认为filename属性值应该是对服务器的POST请求的一部分?
(如果您将其设置为服务器端,它将只是viewstate值的一部分)
我会有另一个隐藏字段“homeExcelDataFileName”并使用其值。
希望这会有所帮助,
答案 1 :(得分:1)
以上对我有用。我认为正在发生的事情是,在提交按钮的回发时,值会以某种方式重新初始化(用于添加属性的javascript加载两次 - 将其移动到服务器端对我而言)
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// Set attribute on page Load
homeExcelData.Attributes.Add("filename","test.xls");
}
}
protected void btnCheckValues_Click(object sender, EventArgs e)
{
Response.Write( homeExcelData.Attributes["filename"].ToString());
}