我在asp.net應用程序中有一個apsx頁面,其中的元素是根據用戶的輸入使用javascript構建的。當用戶點擊「保存」按鈕時,我需要使用用戶提供的所有數據在服務器上創建一個文件。問題是,這些數據存儲在JavaScript(在生成的div)。我需要以某種方式將這些數據導入到asp.net按鈕單擊函數中,或者將所有數據作爲參數調用該函數。它如何實施?在asp.net應用程序中從javascript獲取數據
回答
您可以隨時在表單的隱藏輸入字段中嘗試彈出所需的數據,因此您可以使用Request.Form["fieldName"]
來訪問它(請記住爲隱藏的輸入字段提供「名稱」屬性,否則您將花費無用的小時數試圖找出爲什麼你不能通過Request.Form:P)從代碼隱藏中訪問它。這可能是實現這一目標的最簡單的方法...
編輯
只給你一個快速的想法,這裏是從我的項目,我生成隱藏的輸入字段中的一個基於某些動態領域的一些示例代碼回發到服務器一旦Save()
功能從某些按鈕/錨叫:
function Save() {
$("div.fieldcontainer span.readonly").each(function() {
var fieldId = $(this).attr("id");
var fieldValue = $(this).html();
var ctrl = $("<input type=\"text\" id=\"" + fieldId + "\" name=\"" + fieldId + "\" style=\"display:none;\" />");
ctrl.val(fieldValue);
$(this).parent().append(ctrl);
});
$("div.fieldcontainer a.attachment").each(function() {
var fieldId = $(this).attr("id");
var fieldValue = $(this).text() + "|" + $(this).attr("href");
var ctrl = $("<input type=\"text\" id=\"" + fieldId + "_txtHiddenValue\" name=\"" + fieldId + ":txtHiddenValue\" style=\"display:none;\" />");
ctrl.val(fieldValue);
$(this).parent().append(ctrl);
});
$("div.fieldcontainer select").each(function() {
var fieldId = $(this).attr("id");
var fieldValue = $(this)[0].value;
var fieldText = $(this).find("option[value='" + fieldValue + "']").text().replace("<", "").replace(">", "");
$(this).attr("id", fieldId + "_ORIGINAL");
var ctrl = $("<input type=\"text\" id=\"" + fieldId + "\" name=\"" + fieldId + "\" style=\"display:none;\" />");
ctrl.val(fieldText + "$" + fieldValue);
$(this).parent().append(ctrl);
});
$("div.fieldcontainer input[type='checkbox']").each(function() {
var fieldId = $(this).attr("id");
var fieldValue = $(this).attr("checked");
$(this).attr("id", fieldId + "_ORIGINAL");
var ctrl = $("<input type=\"text\" id=\"" + fieldId + "\" name=\"" + fieldId + "\" style=\"display:none;\" />");
ctrl.val(fieldValue);
$(this).parent().append(ctrl);
});
document.form1.submit();
}
您可能是通過每個客戶產生的DIV實現循環同一類型的邏輯,並創建一個隱藏的輸入每個提交fo之前R M。這樣,當用戶忙於與之交互時,不會不必要地使頁面陷入太多額外的標記...
生成的動態輸入,但隱藏的輸入也將由javascript創建,其中的邏輯是什麼?如果你建議我在純html中創建隱藏的輸入 - 這是不可能的。我不知道用戶可以生成多少個輸入 – Sergey 2012-02-09 08:53:32
您可以使用Javascript創建它們......只要它們在
當您以div顯示數據時,還將數據保存在隱藏字段中。這樣,當您的表單將被髮布時,您將獲得服務器上的數據,並且可以保存它。
編輯
下面是一個例子:
<head runat="server">
<title>my title</title>
<script type="text/javascript">
function init() {
document.getElementById("output").innerHTML="<input type='hidden' name='name' value='wasim'/>";
}
</script>
</head>
<body onload="init();">
<form id="form1" runat="server">
<div id="output">
</div>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="Button1_Click" />
<br />
<asp:Label ID="lblOutput" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
和這裏是服務器端代碼:
protected void Button1_Click(object sender, EventArgs e)
{
lblOutput.Text = Request.Form["name"];
}
你的意思是還生成JavaScript的輸入?我試過了,但它不起作用 - 服務器代碼無法處理javascript生成的輸入。 – Sergey 2012-02-09 09:05:20
你試過Request.Form [「fieldName」]來獲取值嗎? – wasimbhalli 2012-02-09 09:43:47
是的,我已經創建了隱藏的輸入,使用setAttribute(「key」,「value」)設置了它的類型,值和id,並通過document.getElementById(「myForm」)將它添加到了表單中。appendChild(hiddenInput) – Sergey 2012-02-09 09:54:29
使用隱藏變量來存儲用戶輸入 <input type="hidden" name="user_input_id" id="user_input_id" />
在按鈕的點擊功能,使用Request.QueryString["user_input_name"].Value
或user_input_id.Value
檢索值
如果這是不明確,發佈您的代碼片段,並會給你一個更好的畫面
- 1. 從表中獲取數據到ASP.NET Web應用程序
- 2. 在ruby應用程序中從數據庫中獲取數據
- 3. 如何從asp.net獲取JavaScript中的應用程序變量值?
- 4. 在您的asp.net應用程序中獲取SSRS報告數據
- 5. 如何在asp.net mvc3應用程序中獲取網址數據?
- 6. asp.net - 從外部應用程序獲取數據
- 7. 從數據庫ASP中獲取數據:NET MVC應用程序
- 8. 從遠程數據庫獲取數據的Android應用程序
- 9. 在asp.net應用程序中獲取在線用戶的數量
- 10. 錯誤從Android中獲取數據從MySQL應用程序
- 11. 從asp.net應用程序中從框API獲取訪問令牌?
- 12. 從HTML5應用程序中的XML文件中獲取數據?
- 13. 從Qt應用程序獲取原始數據包數據
- 14. 從Windows 8應用程序數據庫獲取數據
- 15. iPhone應用程序從Mysql數據庫獲取數據
- 16. 從數據庫獲取數據到應用程序
- 17. 從javascript中獲取數據
- 18. 從數據庫asp.net中獲取數據
- 19. Python獲取來自asp.net AJAX應用程序的數據
- 20. 在Android應用程序中從Sqlite數據庫讀取數據。
- 21. Windows應用程序:從JavaScript預覽框中獲取像素數據
- 22. 在flex應用程序中無法從數據提供者獲取數據
- 23. 在ASP.NET中從URL獲取數據
- 24. Android應用程序,獲取Json數據
- 25. c#從應用程序中獲取數據(Hearthstone)
- 26. WatchKit從iPhone中的關閉應用程序獲取數據
- 27. 我無法從我的應用程序中獲取數據包
- 28. 如何從DB2獲取數據到AngularJS應用程序中?
- 29. 如何從應用程序中獲取數據/文件?
- 30. 如何在asp.net中獲取Web應用程序的數據庫狀態?
你有輸入字段?當你有這些時,你可以把你生成的div所在的區域幷包裝在一個表單中,並在用戶單擊保存時提交該表單。然後您只需讀取插入的內容並重定向到下一頁 – 2012-02-09 08:28:28
,但服務器端無法處理由javascript – Sergey 2012-02-09 09:07:22