在ajax手风琴中获取Checked Text of复选框。 [英] Get Text of Checked checkbox inside an ajax accordian.

查看:45
本文介绍了在ajax手风琴中获取Checked Text of复选框。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好。我有一个阿贾克斯手风琴。其中我有HeaderTemplate和ContentTemplate。两者都是数据库中的绑定数据。在我的ContentTemplate中,我有复选框。现在我想根据HeaderTemplate Index获取已选中复选框项的文本。以下是我的代码。



Hello. I have an ajax accordian. In which I have HeaderTemplate and ContentTemplate. Both are binding data from database. In my ContentTemplate I have checkbox. Now I want to get text of checked checkbox items according to HeaderTemplate Index. Below is my code.

<asp:Accordion ID="Accordion1" runat="server" TransitionDuration="100" SelectedIndex=-1 FramesPerSecond="200" FadeTransitions="true" 

         RequireOpenedPane="false"  OnItemDataBound="Accordion1_ItemDataBound" ContentCssClass="accordion-content" HeaderCssClass="accordion-header" 

         HeaderSelectedCssClass="accordion-selected" onitemcommand="Accordian1_ItemCommand"  >
    
    <HeaderTemplate>
        <%--<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("Class_Name") %>'  
           CommandName="Select" CommandArgument='<%# Eval("Class_ID")  %>' />--%>
        <%#DataBinder.Eval(Container.DataItem, " Class_Name") %>    
    </HeaderTemplate>
    <ContentTemplate>
        <asp:HiddenField ID="txt_categoryID" runat="server" Value='<%#DataBinder.Eval(Container.DataItem," Class_ID") %>' />
        <asp:GridView ID="GridView1" runat="server" RowStyle-BackColor="#ededed" RowStyle-HorizontalAlign="Left"

            AutoGenerateColumns="false" GridLines="Horizontal"  Width="900px"  >
            <Columns>
                <asp:TemplateField HeaderStyle-HorizontalAlign="Left" HeaderText="Courses" HeaderStyle-BackColor="#d1d1d1"

                    HeaderStyle-ForeColor="#777777">
                    <ItemTemplate>
                    <asp:CheckBox ID="cbCourse" runat="server" AutoPostBack="true" onClick="changeCheckboxText();"  Text='<%#DataBinder.Eval(Container.DataItem," Course_Name") %> ' />
                      
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </ContentTemplate>  
</asp:Accordion>
        <asp:Button ID="btnNext" runat="server" Text="Next" onclick="btnNext_Click" class="next action-button" />





以下是代码隐藏:





below is codebehind:

protected void Page_Load(object sender, EventArgs e)
    {   
        //if (Session["stid"] != null && Session["stnm"] != null)
        {
            if (!Page.IsPostBack)
            {
                getData();
               
                
                
               
            }
        }
        //else
        //{
            //Response.Redirect("Default.aspx");
        //}
    }
    public void getData()
    {
        
        string class_name="SELECT Class_ID,Class_Name from Classes";
        
        SqlDataAdapter sqlAdapter = act.SelectRecDa(class_name);
        DataSet myDataset = new DataSet();
        sqlAdapter.Fill(myDataset);

        
        Accordion1.DataSource = myDataset.Tables[0].DefaultView;
        Accordion1.DataBind();
    }
    
    //protected void btnGiveEmail_Click(object sender, EventArgs e)
    //{
    //    int admNo = Accordion1.SelectedIndex + 1;

        

    //    AccordionPane pane = Accordion1.Panes[Accordion1.SelectedIndex];
    //    Label lbl = pane.FindControl("lblEmail") as Label;
    //    //lbl.Text = "Email: " + dt.Rows[0]["Email"].ToString();
    //}
    protected void Accordion1_ItemDataBound(object sender, AjaxControlToolkit.AccordionItemEventArgs e)
    {
        if (e.ItemType == AjaxControlToolkit.AccordionItemType.Content)
        {

            string sqlSelect = "SELECT Course_Name from Courses where Class_ID = '" + ((HiddenField)e.AccordionItem.FindControl("txt_categoryID")).Value + "' ";
            
            SqlDataAdapter sqlAdapter = act.SelectRecDa(sqlSelect);
            DataSet myDataset = new DataSet();
            sqlAdapter.Fill(myDataset);

            var d = Accordion1.SelectedIndex;

            GridView grd = new GridView();
            grd = (GridView)e.AccordionItem.FindControl("GridView1");
            grd.DataSource = myDataset;
            grd.DataBind();


        }
    }





这是获取选定窗格索引的javascript功能。



This is javascript fnction to get selected pane index.

<script type="text/javascript" language="javascript">

    function pageLoad() {
        var behaviorId = $get("<%= Accordion1.ClientID%>").AccordionBehavior._id;
        $find(behaviorId).add_selectedIndexChanged(
        accordion_selectedIndexChanged);
    }

    function accordion_selectedIndexChanged(sender, args) {
        var oldIndex = args.get_oldIndex();
        var newIndex = args.get_selectedIndex();
        //alert(newIndex);

        function changeCheckboxText(cbCourse) {

            if (cbCourse.checked) {
                //alert(cbCourse.nextSibling.innerHTML);
                alert("a");
            }
        }
    
        // Do something...
    }
    
</script>





现在,当用户点击时在窗格中,它会打开一些右侧带有文本的复选框。我想要的是当用户选中复选框并单击下一步按钮时,我想要复选复选框的文本及其父headetTemplate id和文本。



Now, when user click on a pane, it will open some checkboxes with text on right side. what i want is when user selects the checkbox and click on Next button, I want text of checked checkboxes and its parent headetTemplate id and text.

推荐答案

get( <%= Accordion1.ClientID%>)。AccordionBehavior._id;
get("<%= Accordion1.ClientID%>").AccordionBehavior._id;


find(behaviorId).add_selectedIndexChanged(
accordion_selectedIndexChanged);
}

function accordion_selectedIndexChanged(sender,args){
var oldIndex = args.get_oldIndex();
var newIndex = args.get_selectedIndex();
// alert(newIndex);

function changeCheckboxText(cbCourse){

if (cbCourse.checked){
// alert(cbCourse.nextSibling.innerHTML);
alert( a);
}
}

// 做点什么......
}

< / script>
find(behaviorId).add_selectedIndexChanged( accordion_selectedIndexChanged); } function accordion_selectedIndexChanged(sender, args) { var oldIndex = args.get_oldIndex(); var newIndex = args.get_selectedIndex(); //alert(newIndex); function changeCheckboxText(cbCourse) { if (cbCourse.checked) { //alert(cbCourse.nextSibling.innerHTML); alert("a"); } } // Do something... } </script>





现在,当用户点击时在窗格中,它会打开一些右侧带有文本的复选框。我想要的是当用户选中复选框并单击下一步按钮时,我想要选中复选框及其父headetTemplate id和文本的文本。



Now, when user click on a pane, it will open some checkboxes with text on right side. what i want is when user selects the checkbox and click on Next button, I want text of checked checkboxes and its parent headetTemplate id and text.


这篇关于在ajax手风琴中获取Checked Text of复选框。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆