我已经参加了好几天没有成功。我有一个正在动态创建的手风琴面板。手风琴面板中的一项是窗格。窗格被赋予在手风琴中填充该窗格的数据库中记录的ID。例如,如果我要为50个州中的每个州创建一个手风琴,则paneID将代表州的准入顺序(例如,特拉华州,Pane.ID =“ Pane_1”,新泽西州,Pane.ID =“ Pane_3”,夏威夷, Pane.ID =“ Pane_50”等)
当用户选择手风琴时,我需要能够拉出窗格的ID。我在页面上添加了以下脚本,该脚本将手风琴的selectedIndexChange事件绑定到顶部:
function pageLoad() {
$find('<%= Accordion1.ClientID %>_AccordionExtender').add_selectedIndexChanged(
accordion_selectedIndexChanged);
};
function accordion_selectedIndexChanged(sender, args) {
var sinx = sender.get_SelectedIndex();
alert(sinx);
}
这是因为当我选择“手风琴”窗格时会触发。从那时起,我不知道如何在Accordion_selectedIndexChanged函数中获取Pane.ID。
答案 0 :(得分:0)
首先,我要感谢@zgood。虽然我没有在方法中找到所需内容,但我找不到。我发现我看不到窗格ID,但可以看到标题ID。使用以下链接中的信息,我能够开发一种解决方案:
Pass Javascript Variables value to C#
Accordion Selected Index Change Content
How to Catch Accordion Pane Select Event
以下是一般步骤:
这是aspx代码:
function pageLoad() {
$find('<%= Accordion1.ClientID %>_AccordionExtender').add_selectedIndexChanged(accordion_selectedIndexChanged);
};
function accordion_selectedIndexChanged(sender, args) {
var control_clientId;
var sinx = sender.get_SelectedIndex();
if (sinx > -1) {
var hdnfldVariable = document.getElementById('<%=hdnfldVariable.ClientID %>');
hdnfldVariable.value = sinx;
document.getElementById('LogEntry').click();
}
}
<asp:HiddenField ID="hdnfldVariable" runat="server" />
<asp:Button ID="LogEntry" runat="server" ClientIDMode="Static" OnClick="LogEntry_Click" />
这是背后的代码:
protected void LogEntry_Click(object sender, EventArgs e)
{
if (hdnfldVariable.Value != "")
{
int i = int.Parse(hdnfldVariable.Value);
string id = Accordion1.Panes[i].HeaderContainer.ID;
//Do Something here
}
}