Я сейчас работаю над проектом.Существует GridView
, подключенный к базе данных sql.Существует один из DropDown
идентификатора SumbitTo_dd, который не является столбцом в базе данных, но элементы, привязанные к списку, относятся к другой таблице в базе данных.Я хочу отобразить выбранный элемент из списка в последнем столбце GridView
, так как у меня есть другие данные, также отображаемые в сетке.У меня есть в основном 2 вопроса:
1) Как мой отображаемый запрос для gridview для файла .aspx изменяется на выпадающий список Submit To, поскольку это не какой-либо столбец в БД, а только его элементы, которые уже обработаны иbinded?
2) Как отобразить выбранное значение раскрывающегося списка в указанном столбце таблицы сетки?
Пожалуйста, помогите!
Aspx:
<asp:DropDownList
ID="Submit_dd"
placeholder=""
Cssclass="form-control"
runat="server"
></asp:DropDownList>
<asp:GridView
ID="gridview_TS"
CssClass="table table-striped table-hover"
runat="server"
GridLines="None"
AutoGenerateColumns="False"
AllowPaging="True"
AllowSorting="True"
PageSize="20"
DataKeyNames="EmpId_int,ProjectCode_int"
DataSourceID="SqlDataSource1"
>
<Columns>
<asp:BoundField
DataField="Chk_Int"
HeaderText="Chk_Int"
SortExpression="Chk_Int"
Visible="False"
/>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:CheckBox ID="cbSelect" CssClass="form-control" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="EmpId_Int" HeaderText="EmpId_Int" />
. . . .
<asp:BoundField
DataField="EmpName_vc"
HeaderText="Submit To"
SortExpression="EmpName_vc"
/>
</Columns>
</asp:GridView>
<asp:SqlDataSource
ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:TSMSConnectionString %>"
SelectCommand="SELECT S.EmpId_Int, T.Chk_Int, T.TSDate_dt, T.ProjectCode_Int, P.ProjectName_vc,
T.CCode_Int, C.CostCode_vc, C.CCode_vc, T.TSRhours_nu, T.TSOhours_nu, T.JobDescp_vc, E.EmpName_vc
T.SubmitTo_Int FROM TSHistory T LEFT JOIN Sec_Users S ON T.EmpId_Int= S.EmpId_Int
LEFT JOIN Gen_ProjectList P ON T.ProjectCode_Int = P.ProjectCode_Int
LEFT JOIN Gen_CCList C ON T.CCode_Int= C.CCode_Int LEFT JOIN Gen_Employee E
ON T.EmpId_Int = E.EmpId_Int WHERE (S.UserId_vc = @userId) AND (T.SubmitTo_Int = 0) ORDER BY T.TSDate_dt DESC "
>
<SelectParameters>
<asp:SessionParameter
DefaultValue=""
Name="userId"
SessionField="user"
Type="string"
/>
</SelectParameters>
</asp:SqlDataSource>
C # Bind SubmitTo DropDownList
из базы данных
protected void BindSubmitTo()
{
try
{
cmd.CommandText = "select D.EmpId_Int, E.EmpName_vc from Dept_PM_HOD_List D Left Join Gen_Employee E on D.EmpId_Int = E.EmpId_Int where D.LCode_Int = @intDeptId and D.EmpId_Int<> @intEmpId and(E.EmpType_vc ='PM' or(E.EmpType_vc = 'HOD'))";
cmd.Parameters.AddWithValue("@intDeptId", LocId.Text);
cmd.Parameters.AddWithValue("@intEmpId", EmpID.Text);
cmd.Connection = Cnn;
// Cnn.Open();
SqlDataReader reader;
ListItem newItem = new ListItem();
newItem.Text = "--Select--";
newItem.Value = "0";
Submit_dd.Items.Add(newItem);
Cnn.Open();
reader= cmd.ExecuteReader();
while(reader.Read())
{
newItem = new ListItem();
newItem.Text = reader["EmpName_vc"].ToString();
newItem.Value = reader["EmpId_Int"].ToString();
Submit_dd.Items.Add(newItem);
}
reader.Close();
Cnn.Close();
}
catch (Exception ex)
{
Response.Write("Error:" + ex.Message.ToString());
}
}
//OnCreate_btnClick: Where i want all my enteries to be inserted into the db except of the submitTo_dd value which only for display purpose:
protected void btnCreate_click(object sender, EventArgs e)
{
try
{
if (DateTxt.Text != "" && (PName_dd.Text != "" || PName_dd.Text != "0") && (CCG_dd.Text != "" || CCG_dd.Text != "0") && (CCL_dd.Text != "" || CCL_dd.Text != "0"))
{
DateTime dt = DateTime.ParseExact(DateTxt.Text, "MM/dd/yyyy", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces);
if (dt > DateTime.Today)
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Invalid date')", true);
RefreshSrc();
}
else
{
cmd.CommandText = "INSERT INTO TSHistory(EmpId_Int, ProjectCode_Int, TSDate_dt, CCode_Int, TSRhours_nu, TSOhours_nu, JobDescp_vc) VALUES(@GEId, @Pcode, @date, @CCode, @Rhr, @Ohr, @job)";
cmd.Parameters.AddWithValue("@GEId", EmpID.Text);
cmd.Parameters.AddWithValue("@PCode", PCode_txt.Text);
cmd.Parameters.AddWithValue("@date", dt);
cmd.Parameters.AddWithValue("@CCode", CCL_dd.SelectedValue);
cmd.Parameters.AddWithValue("@Rhr", R_txt.Text);
cmd.Parameters.AddWithValue("@Ohr", O_txt.Text);
cmd.Parameters.AddWithValue("@job", JobDesc_txt.Text);
// cmd.Parameters.AddWithValue("@Emp", EmpID.Text);
cmd.Connection = Cnn;
Cnn.Open();
cmd.ExecuteNonQuery();
Cnn.Close();
displaySubmitTo();
updateUserDetails();
// displayTS();
RefreshSrc();
RefreshDatabase();
}
}
else if (DateTxt.Text == "")
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Select date')", true);
}
else
{
//validations
}
}
}