我有一個隱藏字段的表格:如何改變輸入的隱藏在服務器端的價值
<form id="Form1" runat="server" style="width: 100%; height: 100%; overflow: hidden" onsubmit="return false;">
<div>
<input type="hidden" runat="server" id="TrackColors" value=""/>
<input type="hidden" runat="server" id="Relogin" value=""/>
</div>
</form>
後的Page_Load()在服務器端被調用的函數:
protected void SomeFunction()
{
Dictionary<int, int> trackColors = new Dictionary<int, int>();
if (!String.IsNullOrEmpty(TrackColors.Value))
trackColors = ReadValues(TrackColors.Value);
//if value is null or empty it's assigned to a different
TrackColors.Attributes["value"] = FormValues(trackColors); //FormValues() return string
//change is visible
}
string FormValues(Dictionary<int, int> values)
{
string result = "";
if (values == null || values.Count == 0)
return result;
foreach (KeyValuePair<int, int> p in values)
result += p.Key + "@@" + p.Value + "^^";
result = result.TrimEnd('^');
return result;
}
如果我更改了ComboBox的選定字段,則調用該函數:
<dx:ASPxTextBox ID="ColorTrackCarID" Visible="false" Text='<%# Eval("CarId") %>' />
<dx:ASPxComboBox ID="ASPxComboBox1" runat="server" SelectedIndex='<%# Eval("TrackColor") %>'
ValueType="System.String" Width="30" ShowImageInEditBox="true"
ondatabinding="ASPxComboBox1_DataBinding">
<ClientSideEvents SelectedIndexChanged="function (s,e) {
if (window.TrackColorChanged != null)TrackColorChanged(s,e); }" />
</dx:ASPxComboBox>
function TrackColorChanged(s, e) {
var TrackColors = document.getElementById('TrackColors');
if (TrackColors == null || TrackColors.value == "")
return values;
//values is always emply
}
我明白表單字段的值不會通過ba ck到客戶端。問題是:如何將這些值傳回?
如果我改變在Page_Load中()服務器端的值,然後在客戶端所看到的一切,就是
protected void Page_Load(object sender, EventArgs e)
{
TrackColors.Attributes["value"] = "bla-bla-bla";
//All changes are visible on the client-side
}
感謝您的關注。
您是否嘗試過使用'TrackColors.Value'?此外,從FormValues(trackColors)返回的是什麼;'? **發佈該方法。** – 2013-02-13 14:04:38
您可以通過發送該值 – coder 2013-02-13 14:12:02
來調用您的代碼隱藏的JS/JQuery函數有什麼功能? – 2013-02-13 14:32:41