Member 14141512 Ответов: 0

Как я использую treeview checkchanged event без postback()?


Я работаю в Asp.net и используйте управление TreeView.

protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
        {
            if (e.Node.ChildNodes.Count > 0 && e.Node.Checked)
            {
                foreach (TreeNode childnode in e.Node.ChildNodes)
                {
                    childnode.Checked = true;
                }
            }
            else if (e.Node.ChildNodes.Count > 0 && !e.Node.Checked)
            {
                foreach (TreeNode childnode in e.Node.ChildNodes)
                {
                    childnode.Checked = false;
                }
            }
            else if (e.Node.ChildNodes.Count == 0 && e.Node.Checked)
            {
                e.Node.Parent.Checked = true;
            }
            else if (e.Node.ChildNodes.Count == 0 && Count_checkedChilds(e.Node.Parent) == 0)
            {
                e.Node.Parent.Checked = false;
            }
        }

        protected int Count_checkedChilds(TreeNode node)
        {
            int k = 0;
            foreach (TreeNode childnode in node.ChildNodes)
            {
                if (childnode.Checked == true)
                {
                    k++;
                }
            }
            return k;
        }



И я использую ниже код спереди:

<pre><div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
          
        <asp:TreeView ID="TreeView1" runat="server" Width="189px" OnTreeNodeCheckChanged="TreeView1_TreeNodeCheckChanged">
            

        </asp:TreeView>
        
    </div>
    <script type="text/javascript">
        var btn = document.getElementById("Button1");
        function postBackByObject() {
            var o = window.event.srcElement;
            if (o.tagName == "INPUT" && o.type == "checkbox") {
                __doPostBack("", "");
                
            }
        }
    </script>


Что я уже пробовал:

Когда я нажимаю флажки, запускается функция PostBack ().Но мой treeview находится на всплывающей странице, и когда я нажимаю флажок, моя всплывающая страница исчезает.Как я могу решить эту проблему? Пожалуйста, помогите мне немедленно..

F-ES Sitecore

Если вы не хотите, чтобы страница обновлялась, вам нужно поместить treeview в Панель обновления. Не уверен, что javascript, который вы должны запустить для обратной передачи, будет работать с элементами в updatepanel, если нет, то вам, возможно, придется найти другой способ запуска обратной передачи, но это в основном решение, к которому вам нужно двигаться.

Member 14141512

Я использую функцию PostBack для управления treeview, в которой я пишу свой вопрос.Когда я использую updatepanel, должен ли я продолжать использовать функцию PstBack??

Member 14141512

потому что без обратной передачи функция событие TreeView элемент checkchange не работает

0 Ответов