I have an editable grid view which has 3 text boxes & 6 dropdownlists. Each previous dropdownlist drives the next one & based upon previous dropdownlist selection criteria the next dropdownlist gets populated.
The 4 drop-down list criteria fills the couple of textbook values with its unique values in each row, but the problem is whenever I select any dropdownlist all text boxes updates with the same values instead of unique per row value.
enter code here
Также бывает, когда я нажимаю кнопку «Сохранить», текстовое поле описания также теряет свое значение в выпадающих списках и при любом событии обратной передачи.
Пожалуйста, помогите, чтобы каждое текстовое поле в строке имело отличное значение от базы данных на основе связанных с ним критериев раскрывающегося списка и текстового поля описания, а также не теряло своего значения при обратной передаче.
У меня есть событие привязки к сетке данныхизменение выбранного индекса для привязки раскрывающегося списка из базы данных, а также присвоение значений элементам управления в e.Row.RowState & DataControlRowState.Edit>0
Gridview:
<asp:TemplateField HeaderText="In-Outbound/Process" ItemStyle-Width="80px">
<EditItemTemplate>
<asp:DropDownList ID="ddlIPC" runat="server" Font-Size="14px"
OnSelectedIndexChanged="ddlIPC_SelectedIndexChanged" AutoPostBack="true">
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblIPC" runat="server" Text='<%# Bind("InOutBound") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Type" ItemStyle-Width="80px">
<EditItemTemplate>
<asp:DropDownList ID="ddlType" runat="server" Font-Size="14px"
OnSelectedIndexChanged="ddlType_SelectedIndexChanged" AutoPostBack="true">
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblType" runat="server" Text='<%# Bind("Type") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ADP Complexity" ItemStyle-Width="80px">
<EditItemTemplate>
<asp:DropDownList ID="ddlComplexity" runat="server" Font-Size="14px" OnSelectedIndexChanged="ddlComplexity_SelectedIndexChanged" AutoPostBack="true">
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblcomplex" runat="server" Text='<%# Bind("Complexity") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
string des = drv["Description"].ToString();
// e.Row.Cells[0].Text = drv["Description"].ToString();
txtassumptions.Text = drv["Assumptions"].ToString();
txtHour.Text = drv["Hours"].ToString();
DropDownList ddlComplexity = (DropDownList)sender;
GridViewRow row = (GridViewRow)ddlComplexity.NamingContainer;
TextBox txtassumptions = (TextBox)row.FindControl("txtAssump");
TextBox txtHour = (TextBox)row.FindControl("txtHour");
if (row != null)
{
int ComplexityValue = Convert.ToInt32(ddlComplexity.SelectedIndex);
string strComplex = ddlComplexity.SelectedItem.Text;
Session["ddlComplex"] = ComplexityValue;
Session["ddlComplextext"] = strComplex;
string strInOPP = ""; string strtype = ""; string strcomplexity = "";
if (Session["ddlInOtext"] != null)
{
strInOPP = Session["ddlInOtext"].ToString();
}
if (Session["ddlTypetext"] != null)
{
strtype = Session["ddlTypetext"].ToString();
}
if (Session["ddlComplextext"] != null)
{
strcomplexity = Session["ddlComplextext"].ToString();
}
Payroll pay = new Payroll(ConfigurationManager.ConnectionStrings["SalesDeals"].ConnectionString);
string first = strInOPP.Replace("\r\n", string.Empty);
string second = strtype.Replace("\r\n", string.Empty);
string third = strcomplexity.Replace("\r\n", string.Empty);
if (pay.GetPayrollCoreHours(second, first, third).Rows.Count > 0)
{
foreach (DataRow dr in pay.GetPayrollCoreHours(second, first, third).Rows)
{
txtassumptions.Text = dr["Assumptions"].ToString();
Session["assum"] = txtassumptions.Text;
if (dr["Hours"].ToString() != null)
{
txtHour.Text = dr["Hours"].ToString();
Session["hour"] = txtHour.Text;
}
else
{
txtHour.Text = "0";
}
break;
}`enter code here`
}
}
ddlComplexity.DataBind();