在asp.net中读取html属性

时间:2012-03-12 09:05:25

标签: asp.net html

我的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";

2 个答案:

答案 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());

}