C# 已选择的索引已更改
问题: SelectedIndexchanged不会激发。我尝试使用断点进行调查,但它甚至没有到达事件。 我通过双击组合框完成了这个活动。但这没有帮助。 请给我一些建议 代码如下:C# 已选择的索引已更改,c#,javascript,asp.net,C#,Javascript,Asp.net,问题: SelectedIndexchanged不会激发。我尝试使用断点进行调查,但它甚至没有到达事件。 我通过双击组合框完成了这个活动。但这没有帮助。 请给我一些建议 代码如下: protected void nav_dd_parent_edit_SelectedIndexChanged(object sender, EventArgs e) { } <td width="55%" class="style1" he
protected void nav_dd_parent_edit_SelectedIndexChanged(object sender, EventArgs e)
{
}
<td width="55%" class="style1" height="20px">
<asp:DropDownList ID="nav_dd_parent_edit" runat="server"
DataSourceID="sp_GetNavParents_Edit" DataTextField="Name"
DataValueField="NavItemId" Height="24px" ReadOnly="FALSE" Width="375px"
onselectedindexchanged="nav_dd_parent_edit_SelectedIndexChanged">
</asp:DropDownList>
</td>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//Page.MaintainScrollPositionOnPostBack = true;
//SiteMaster.g_solution = "Couche-Tard - QV";
//SiteMaster.g_solution_id = 27;
nav_dd_parent.DataBind();
if (SiteMaster.g_solution != null && SiteMaster.g_solution != "")
{
nav_literal.Text = "Solution: " + SiteMaster.g_solution;
nav_hidden_SoltnId.Value = SiteMaster.g_solution_id.ToString();
}
else
{
nav_literal.Text = "Please select a solution first from the 'Solution Template' Tab.";
panel_top.Visible = false;
}
}
受保护的无效导航\u dd\u父项\u编辑\u选择的索引已更改(对象发送方,事件参数e)
{
}
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!Page.IsPostBack)
{
//Page.MaintainScrollPositionOnPostBack=真;
//SiteMaster.g_solution=“Couche Tard-QV”;
//SiteMaster.g_解决方案_id=27;
nav_dd_parent.DataBind();
if(SiteMaster.g_解决方案!=null&&SiteMaster.g_解决方案!=“”)
{
nav_literal.Text=“解决方案:”+SiteMaster.g_解决方案;
nav_hidden_SoltnId.Value=SiteMaster.g_solution_id.ToString();
}
其他的
{
nav_literal.Text=“请先从“解决方案模板”选项卡中选择一个解决方案。”;
面板顶部可见=假;
}
}
您没有看到断点被击中,因为选择更改时dropdownlist没有发回
将
AutoPostBack
设置为true
,您应该都设置好了。我注意到您的DropDownList Id是“nav_dd_parent_edit”,但是您的页面加载正在调用“nav_dd_parent”上的数据绑定方法-这可能是问题的一部分吗
不管怎样,我做了一个简化版的DropDownList,效果很好——也许会有帮助
<table>
<tr>
<td width="55%" class="style1" height="20px">
<asp:DropDownList
ID="nav_dd_parent"
runat="server"
DataTextField="Name"
DataValueField="NavItemId"
Height="24px"
ReadOnly="FALSE"
Width="375px"
onselectedindexchanged="nav_dd_parent_edit_SelectedIndexChanged"
AutoPostBack="true">
</asp:DropDownList>
</td>
</tr>
</table>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
nav_dd_parent.Items.Add(new ListItem("Item 1", "1"));
nav_dd_parent.Items.Add(new ListItem("Item 2", "2"));
nav_dd_parent.Items.Add(new ListItem("Item 3", "3"));
}
}
protected void nav_dd_parent_edit_SelectedIndexChanged(object sender, EventArgs e)
{
int codeGetsHere = 0;
}
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!Page.IsPostBack)
{
资产负债表项目。添加(新列表项目(“项目1”、“1”);
资产负债表项目。添加(新列表项目(“项目2”、“2”));
资产负债表项目。添加(新列表项目(“项目3”、“3”);
}
}
受保护的无效导航\u添加\u父项\u编辑\u选择的索引已更改(对象发送方,事件参数e)
{
int-codeGetsHere=0;
}
需要记住的几个注意事项如下:
a、 将“AutoPostBack”设置为true:
<asp:DropDownList ID="nav_dd_parent_edit" runat="server" AutoPostBack="true"
DataSourceID="sp_GetNavParents_Edit" DataTextField="Name"
DataValueField="NavItemId"
onselectedindexchanged="nav_dd_parent_edit_SelectedIndexChanged">
</asp:DropDownList>
我也试过了……但当我将所选值更改为其他值时,它会自动选择默认值。一步一个脚印。如果你想在更改所选索引时回发DDL,你必须设置
AutoPostBack
。如果这样做后你有其他问题,那是另一个问题。设置后g AutopostBack为true,每当我尝试更改所选值时,它都会自动选择默认值。Ahhh-我打赌在页面加载方法中每次回发后,您都会将数据绑定到DD。请确保在第一次加载时仅绑定一次。if(!page.IsPostback){bindYourDropDownList();}
@user1047883好的,我们收集相关代码,包括带有AutoPostBack的DDL,然后发布一个新问题,描述您的新问题发布页面加载代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
nav_dd_parent_edit.DataSource = yourDataSourceName;
nav_dd_parent_edit.DataBind();
}
}