1つのページに2つのASP.NETドロップダウンリストコントロールがあります。1つ目はサーバーにコールバックし、配列を取得します。この配列はクライアントに返され、javascriptを介して2つ目のドロップダウンリストに入力するために使用されます。ただし、2番目の(および新しく入力された)ドロップダウンリストで選択を行ってからポストバックを実行すると、2番目のドロップダウンリストの選択と内容が失われます。選択した値を取得し、ポストバック後にリストの内容を保持する必要があるため、これは問題です。
これを修正するにはどうすればよいですか?ポストバックの前のある時点でビューステートを更新することだと思いますか?
私が入力しているコントロールは、ASP.NETドロップダウンリストです。これが私がそれらを移入するために使用しているjavascriptです。
使用されているコードは次のとおりです(簡潔にするために少し切り詰めています)。
私が入力しているASP.NETコントロール:
<asp:DropDownList ID = "ddlStateCounty" runat = "server" OnSelectedIndexChanged = "ddlStateCounty_OnSelectedIndexChanged" AutoPostBack = "true" />
カンマ区切りの値のリストを取得するコールバックコード:
public void RaiseCallbackEvent(string eventArgument)
{
return "1, 2, 3";
}
Javascriptポピュレーションコード:
function ReceiveServerData(retValue)
{
var statesArray = retValue.split(',');
var statesList = document.getElementById('{0}');
if (statesArray.length > 0 && statesList != null)
{
for (var j = 0; j < statesArray.length; j++)
{
var newOption = document.createElement('OPTION');
statesList.options.add(newOption);
newOption.value = statesArray[j].toString().trim();
newOption.innerText = statesArray[j];
}
}
}