ユーザーがDropdownlistsselectedIndexchangeイベントを変更したときに、Gridviewのテキストボックスをtrueまたはfalseで表示します。次のコードを実行しました。
私の.CSファイルコードは次のとおりです。
protected void gvTaskList_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HiddenField hdn = (HiddenField)e.Row.FindControl("hdnStatus");
DropDownList ddl = (DropDownList)e.Row.FindControl("ddlStatus");
TextBox txt = (TextBox)e.Row.FindControl("txtVal");
if (ddl != null)
{
ddl.Items.Add("Not Started");
ddl.Items.Add("In Progress");
ddl.Items.Add("Complete");
if (hdn != null)
{
ddl.SelectedValue = hdn.Value;
}
//ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged);
ddl.Attributes.Add("onChange", "return myFun(" + "'" + txt.ClientID + "'" +");");
}
}
}
catch (Exception ex)
{
Utility.ErrorList("EmpTaskList--RowdataBound", ex.ToString());
}
}
注:私のコンボボックスとテキストボックスは両方ともEditTmplateにあります
Javascriptコードは以下の通りです
<script type="text/javascript">
function myFun(txtControl) {
var v = document.getElementById("<%=" + txtControl + "%>");
alert(v);
}
ドロップダウンリストのインデックス関数を変更すると、アラートが呼び出され、アラートがnullを表示します。
だから誰かが私に何が間違っているのか提案してもらえますか?