請問﹕DataGrid中的DropDownlist問題
熊柏棠 2005-11-10 01:14:41 請問﹕我現在需要在一個DataGrid中顯示DropDownList框﹐情況是這樣的﹗
下拉框中是從庫中抓來的請假類別﹐我需要在頁面中顯示出來﹐員工是否請假﹐請假了就到下拉框 中定位到請假類別﹗但現在我的下拉框的值到DataGrid中不出來﹐但到DataGrid外就有﹗請問﹐怎樣到DataGrid中顯示其下拉框的值呢?謝謝~~
部分代碼如下﹕
<asp:BoundColumn HeaderText="工作時間段" HeaderStyle-Width="27%" ItemStyle-Wrap="false"/>
<asp:TemplateColumn HeaderText="出勤標識">
<ItemTemplate>
<asp:DropDownList id="id_leaveType" DataValueField="typeid" DataTextField="typename" Runat="server"/>
</ItemTemplate>
</asp:TemplateColumn>
--------------
.cs
//數據綁定
private void BindGrid()
{
//string ymd = DateTime.Now.ToString("yyyyMMdd");
conn = new OracleConnection(ConfigurationSettings.AppSettings["Oracle"]);
try
{
conn.Open();
string sql = "SELECT a.empid AS empid,a.idcardno AS idcardno,a.empname AS empname FROM tbl_emp a WHERE a.idcardno <> '0' ORDER BY a.empid ";
OracleCommand cmd = new OracleCommand(sql,conn);
OracleDataAdapter ada = new OracleDataAdapter();
ada.SelectCommand = cmd;
DataSet ds = new DataSet();
ada.Fill(ds,"xb_leave");
MyGrid.DataSource = ds.Tables["xb_leave"].DefaultView;
MyGrid.DataBind();
/*
for(int i=0;i<MyGrid.Items.Count-1;i++)
{
DropDownList Ddl = (DropDownList)MyGrid.Items[i].FindControl("id_leaveType");
Ddl.SelectedIndex = Ddl.Items.IndexOf(Ddl.Items.FindByValue(ds.Tables["xb_leave"].Rows[i]["typeid"].ToString()));
//if (ds.Tables["xb_leave"].Rows[i]["typeid"] is DBNull)
//Ddl.DataTextField.Selected = "正常";
getLeaveType();
}
*/
}
catch(Exception ex)
{
Msg.Text = ex.Message;
}
finally
{
conn.Close();
}
}
//得到休假類別名
private void getLeaveType()
{
conn = new OracleConnection(ConfigurationSettings.AppSettings["Oracle"]);
try
{
string MySQL = "SELECT typeid,typename FROM xb_leavetype";
OracleCommand MyCommand = new OracleCommand(MySQL,conn);
conn.Open();
OracleDataAdapter oda = new OracleDataAdapter();
oda.SelectCommand = MyCommand ;
DataSet ds = new DataSet();
oda.Fill(ds,"xb_leavetype");
//ds = Convert.ToString(MyCommand.ExecuteNoQuery());
//return ds;
id_leaveType.DataSource = ds.Tables["xb_leavetype"].DefaultView;
id_leaveType.DataBind();
}
catch(Exception ex)
{
Msg.Text = ex.Message;
}
finally
{
conn.Close();
}
}