J'ai une DropDownList et à côté d'un texte d'entrée. La liste déroulante est remplie à partir de la base de données.définir le texte de saisie en fonction de la valeur sélectionnée à partir de ASP: DropDownList
Utility.cs
public DataTable Get_Student_Billing_Type(DropDownList lb, int faculty)
{
try
{
DataTable dt = new DataTable();
SqlParameter param1 = new SqlParameter("@P_BILLING_FACULTY", SqlDbType.Int);
param1.Value = faculty;
dt = DbAccessHelper.ExecuteDataSet("P_GET_BILLING_TYPE", new SqlParameter[] { param1 }, true).Tables[0];
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
lb.Items.Add(new ListItem(row["BILLING_HEADING"].ToString(), row["BILLING_TYPE_ID"].ToString()));
}
}
return dt;
}
catch (Exception)
{
return null;
}
}
Cette DataTable dt a 3 colonnes BILLING_HEADING, BILLING_TYPE_ID, BILLING_AMOUNT
Mon exigence est lorsque l'utilisateur sélectionne une valeur-à-dire BILLING_HEADING dans la liste déroulante son BILLING_AMOUNT correspondante doit être indiquée dans le texte d'entrée à côté il. Je sais que je dois utiliser OnSelectedIndexChanged
mais comment afficher la valeur de champ correspondante de DataTable sur l'élément sélectionné.
code page asp
<div class="form-group">
<label for="inputType" class="col-md-2 control-label">Type</label>
<div class="col-md-6">
<asp:DropDownList ID="DDL_type" class="form-control input_text" OnSelectedIndexChanged="DDL_type_SelectedIndexChanged" runat="server"></asp:DropDownList>
</div>
<div class="col-md-3">
<input type="text" class="form-control input_text" id="inputTypeAmount" placeholder="AMOUNT" readonly="true" autocomplete="off" />
</div>
</div>
code ASPX
protected void GetType()
{
try
{
DataTable dt = new DropDown().Get_Patient_Billing_Type(DDL_type, 1);
}
catch (Exception)
{
throw;
}
}
protected void DDL_type_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
// how to write logic so that the corresponding BILLING_AMOUNT show for selected BILLING_HEADING
}
catch (Exception)
{
throw;
}
}
obtenir erreur 'Impossible de jeter l'objet de type 'System.Int32' pour saisir 'System.String' dans la requête, '.Where (row => row.Field (" BILLING_TYPE_ID ") == DDL_type.SelectedValue) .FirstOrDefult();' ' BILLING_TYPE_ID' a le type de données INT dans la table. –
user4221591
@ user4221591 J'ai supposé que 'BILLING_TYPE_ID' avait une chaîne de type de données. J'ai donc utilisé 'row.Field (" BILLING_TYPE_ID ")'. J'ai édité ma réponse. J'ai changé 'selectedRow.Field (" BILLING_AMOUNT ")' aussi. –