Прежде чем начать, я хотел бы сказать одно: это не связано с базой данных.
Я разрабатываю сайт, используя asp.net. Здесь застряли из-за некоторых путаниц.
На одной из моих страниц доступно несколько панелей. Каждая панель имеет одну метку (имя состояния) и два текстовых поля. В верхней части страницы строка поиска (раскрывающийся список) предоставляется с именами состояний.
Теперь здесь сценарий: если пользователь выбирает состояние из раскрывающегося списка, следует искать конкретную панель с соответствующей меткой (имя состояния).
Например
У меня есть состояние A, B и C в моем раскрывающемся списке (панель поиска), и в то же время я также имею три панели, такие как панель x (состояние A как имя метки и два текстовых поля), панель y ( State B как имя метки и два текстовых поля) и Panel z (State C как имя метки и два текстовых поля) на странице Default.aspx.
Теперь мне нужно, если пользователь выберет State A из выпадающего списка, тогда конкретная панель (которая имеет статус A) должна отображаться со всеми элементами управления
"Нет связи с базой данных"
Надеюсь, я не смущаюсь. Любая помощь будет более полезной для меня.
Заранее спасибо.
Предполагая, что label1 находится в Panel1, а label2 находится в Panel2
protected void Dropdownlist1_Changed(object sender, EventArgs, e)
{
string labelTxt= Dropdownlist1.SelectedValue;
if(labelTxt == label1.Text)
{
Panel1.Visible = true;
Panel2.Visible = false;
}
else if(labelTxt == label2.Text)
{
Panel1.Visible = false;
Panel2.Visible = true;
}
}
Это громоздко, но вы можете отображать/скрывать элементы управления на основе выбранного события изменения индекса в раскрывающемся списке. Вот пример, вам нужно будет изменить его в соответствии со своим сценарием.
protected void Dropdownlist1_Changed(object sender, EventArgs, e)
{
string item = Dropdownlist1.SelectedValue;
if(item == "State 1")
{
Panel1.Visible = false;
Panel2.Visible = true;
}
}
Это легко, но вам нужно быть более логичным, потому что нет никакой связи между вашей панелью и списком вниз.
<asp:DropDownList runat="server" ID="ddlState" AutoPostBack="True"
OnSelectedIndexChanged="ddlState_SelectedIndexChanged" >
<asp:ListItem Text="StateA" Value="Panel1" />
<asp:ListItem Text="StateB" Value="Panel2" />
</asp:DropDownList>
И в С#
protected void ddlState_SelectedIndexChanged(object sender, EventArgs, e)
{
//hide all the panels
for(int i=0;i<ddlState.Items.Count;i++)
{
var control= ddlState.Items[i].Value;
if(this.FindControl(control)!=null)
this.FindControl(control).Visible=false;
}
//show the selected dropdown list panel
string item = Dropdownlist1.SelectedValue;
if(this.FindControl(item)!=null)
this.FindControl(item).Visible =true;
}
HTML
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Panel ID="pnlDropDown" runat="server">
<table style="width:100%">
<tr>
<td style="text-align:right;width:30%">
<asp:Label ID="lblState" runat="server" Text="Select State"></asp:Label>
</td>
<td>
<asp:DropDownList ID="ddlState" runat="server" AutoPostBack="true" AppendDataBoundItems="true" OnSelectedIndexChanged="ddlState_SelectedIndexChanged">
<asp:ListItem></asp:ListItem>
<asp:ListItem Value="pnlA">State A</asp:ListItem>
<asp:ListItem Value="pnlB">State B</asp:ListItem>
<asp:ListItem Value="pnlC">State C</asp:ListItem>
</asp:DropDownList>
</td>
<td></td>
</tr>
</table>
</asp:Panel>
<asp:Panel ID="pnlA" runat="server" Visible="false">
<table style="width:100%">
<tr>
<td style="text-align:right;width:30%">
<asp:Label ID="lblStateA" runat="server" Text="State A"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtboxA" runat ="server"></asp:TextBox>
</td>
<td></td>
</tr>
</table>
</asp:Panel>
<asp:Panel ID="pnlB" runat="server" Visible="false">
<table style="width:100%">
<tr>
<td style="text-align:right;width:30%">
<asp:Label ID="lblB" runat="server" Text="State B"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtB" runat ="server"></asp:TextBox>
</td>
<td></td>
</tr>
</table>
</asp:Panel>
<asp:Panel ID="pnlC" runat="server" Visible="false">
<table style="width:100%">
<tr>
<td style="text-align:right;width:30%">
<asp:Label ID="lblc" runat="server" Text="State C"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtc" runat ="server"></asp:TextBox>
</td>
<td></td>
</tr>
</table>
</asp:Panel>
</div>
</form>
</body>
</html>
Код за
namespace WebApplication1
{
public partial class dropdown : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 1; i < ddlState.Items.Count; i++)
{
var control = ddlState.Items[i].Value;
this.FindControl(control).Visible = false;
}
string item = ddlState.SelectedValue;
this.FindControl(item).Visible = true;
}
}
}
Надеюсь это поможет,
Счастливое кодирование
C#
илиjava-script
?