//私の問題は、ddlmodalitylist の SelectedIndexChanged イベントを非同期的に発生させた場合 (ajax 呼び出し)、javascript ロード イベントが発生しないことです。つまり、サーバー側から onload イベントを発生させる必要があります。
window.onload = body_Onload;
function body_Onload() {
//javascript code
}
protected void ddlModalityList_SelectedIndexChanged(object sender, EventArgs e)
{
ddlStudy.Items.Clear();
ListItem selectedPair = ddlModalityList.SelectedItem;
string str= selectedPair.Value;
int ID= Convert.ToInt32(str);
if (ID == -1)
{
// ddlStudy.Items.Clear();
return;
}
DataTable dataTableStudy = null;
dataTableStudy = objSqlDbComm.ExecuteDatasetQuery(strSQL).Tables[0];
var dictioneryStudy = new Dictionary<int, string>();
foreach (DataRow dr in dataTableStudy.Rows)
{
dictioneryStudy.Add(Convert.ToInt32(dr["Study_ID"]), dr["Study_Desc"].ToString());
}
ddlStudy.DataTextField = "Value";
ddlStudy.DataValueField = "Key";
ddlStudy.DataSource = dictioneryStudy;
ddlStudy.DataBind();
ddlStudy.Items.Insert(0, new ListItem("[Select]", "-1"));
ddlStudy.Items[0].Selected = true;
}