動的にバインドされたドロップダウンリストの特定のリストアイテムの背景色を変更する必要があります。ハイライトする必要のある特定のアイテムも動的であり、データセットに保存されます。このようにして、ユーザーはアイテムがプログラムの他の場所ですでに選択されていることを認識しますが、必要に応じてアイテムを選択することもできます。
以下は私のコードです:
if ((e.Row.RowState & DataControlRowState.Edit) > 0)
{
string strWeek = ((Label)e.Row.FindControl("lblWeek")).Text.ToString();
string strBed = ((Label)e.Row.FindControl("lblBed")).Text.ToString();
string strJob = getSelectedJob(strBed, strWeek);
e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#f8f8ff");
DataTable myTable = new DataTable();
DataColumn EIDColumn = new DataColumn("EID");
DataColumn EventNameColumn = new DataColumn("EventName");
myTable.Columns.Add(EIDColumn);
myTable.Columns.Add(EventNameColumn);
DataSet ds = new DataSet();
ds = getJobs(strBed, strWeek, ddlTerm.SelectedValue.ToString(), strJob);
DataSet ds2 = new DataSet();
ds2 = getAssignedJobs(strBed);
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl = (DropDownList)e.Row.FindControl("ddlEssential");
DataRow[] rows = ds.Tables[0].Select();
foreach (DataRow row in rows)
{
DataRow newRow = myTable.NewRow();
newRow["EID"] = row["EID"];
newRow["EventName"] = row["EventName"];
myTable.Rows.Add(newRow);
}
ddl.DataSource = myTable;
ddl.DataTextField = "EventName";
ddl.DataValueField = "EID";
ddl.DataBind();
ddl.Items.FindByValue(strJob).Selected = true;
foreach (DataRow row in ds2.Tables[0].Select())
{
string strAssignedJob = row["EID"].ToString();
ddl.Items.FindByValue(strAssignedJob).Attributes.Add("style", "background-color:#cccccc");
}
}
このエラーが発生しまし たオブジェクト参照がオブジェクトのインスタンスに設定されていません。ドロップダウンリストにスタイル属性を追加する行で発生しているようです。
これは可能ですか、それとも私のループステートメントは正しくありませんか?
本当にありがとう!