ASP的价值:由Javascript

时间:2015-06-15 15:47:14

标签: javascript c# asp.net

我已经看到了其他几个与此相似的问题,我似乎有一个奇怪的转折。我有一个时间表网络应用程序,一名员工在一张桌子上提交他们的时间,它被发送给H.R.作为readonly。然后,H.R。可以根据某些标准批准或拒绝他们的时间表。我认为如果H.R. Rep可以点击不正确的单元格并将它们变成红色会很好,因此当它被拒绝并发回给员工时,很容易看到他们需要纠正的内容。

我用Javascript编写了这个小片段,效果很好:

    var validTextArray = {};
    var backgroundColorArray = {};
    function clearTextBox(textBoxID) 
    {
        if (document.getElementById(textBoxID).value != "#ERROR")
        {
            backgroundColorArray[textBoxID] = document.getElementById(textBoxID).style.backgroundColor;
            validTextArray[textBoxID] = document.getElementById(textBoxID).value;
            document.getElementById(textBoxID).value = "#ERROR";
            document.getElementById(textBoxID).style.backgroundColor = "red";
        }
        else if (validTextArray[textBoxID] != null)
        {
            document.getElementById(textBoxID).value = validTextArray[textBoxID];
            document.getElementById(textBoxID).style.backgroundColor = backgroundColorArray[textBoxID];
        }
    }

并且明确我的c#就是这样:

            day1PH.Attributes["onclick"] = "clearTextBox(this.id)";
            day1PN.Attributes["onclick"] = "clearTextBox(this.id)";
            day1LV.Attributes["onclick"] = "clearTextBox(this.id)";
            day1TL.Attributes["onclick"] = "clearTextBox(this.id)";

            day2PH.Attributes["onclick"] = "clearTextBox(this.id)";
            day2PN.Attributes["onclick"] = "clearTextBox(this.id)";
            day2LV.Attributes["onclick"] = "clearTextBox(this.id)";
//etc...

这部分工作得很漂亮,问题是我需要能够捕获这些错误。现在当H.R。命中拒绝按钮时,表中的所有数据都被重写为SQL数据库,但由于文本是由javascript设置的,因此“#ERROR”值不会通过。

我可以做些什么来捕获这些值?

1 个答案:

答案 0 :(得分:0)

我猜你正在使用webforms,如果你是,你可以使用隐藏字段并使用错误设置value属性,然后当你将表单发布到你的web服务器时,你可以使用Request.Form [&]来获取这个值。 #34; nameOfYourHiddenAttribute"。]

<input id="hdnErrors" type="hidden" name="error" value="xpto">

string error = Request.Form["error"] + ""; //error is 'xpto'

如果你有多个错误,你可以在javascript中使用一些字典,最后你可以序列化到json对象e把它放在隐藏值中然后,在你的服务器端代码中,你可以反序列化并使用它。 / p>

像这样的东西(没有测试它)

var arrayObject = [];
var error = {txtId = "txt1", description="HR error"};
arrayObject.push(error);

document.getElementById('hdnErrors').value = JSON.stringify(arrayObject);