vahid_dadaism Ответов: 5

Справка в TreeView с флажком


Предположим,что у нас есть treeview с флажком,включающим node1 и sub node 1.1,1.2, 1.3, 1.4.
я хочу сделать так, чтобы при выборе пользователем всех подузлов главный узел выбирался автоматически, а при выборе пользователем некоторых подузлов главный узел выбирался другим способом.как заполненный квадрат.
как я могу это сделать??????

keerth516

Я проделал тот же процесс в WPF.если вам нужна какая-либо помощь, пожалуйста, дайте мне знать.

5 Ответов

Рейтинг:
38

agent_kruger

сэр, вам нужно цикл через каждый узел и проверьте, все ли дети выбраны, и если да,то вам нужно программно проверить родительскую истину.


Рейтинг:
2

Amey K Bhatkar

Пусть это поможет вам.

[^]


Рейтинг:
1

kbhtech

Не полагайтесь на ListView для обработки

UserControls строго предназначены для того, чтобы быть интерфейсами, в таком случае я должен был бы рекомендовать создать структуру данных для работы с классом, который унаследовал интерфейс коллекции. Я предлагаю это, потому что пользовательские события могут быть запущены для замены циклов for, и это делает приложение менее интенсивным процессом.

Вот пример: [C#] структуры данных с примером файла интерфейса - Pastebin.com[^]

Затем все, что нам нужно сделать, это обновить коллекцию из PrimaryKey, которая в классе, который я предоставил, предполагает, что PrimaryKey является уникальным идентификатором.

Это становится MyClass[listView. selectedIndex[0]]. Column = value;

Который при каждом изменении должен запускать событие, содержащее новую и старую информацию, чтобы найти его в listview.

И что теперь? Из-за петель! Что может стать чрезвычайно интенсивным процессом. Особенно если база данных коммерческая.


Richard Deeming

Этот вопрос был задан, на него ответили, и он был решен. ПЯТЬ ЛЕТ НАЗАД.

Ваше "решение" не имеет ничего общего с вопросом.

kbhtech

Да, в тот день я не уделял ему должного внимания. У меня были выпускные экзамены, и я просто сканировал контент здесь, публикуя контент.

Рейтинг:
0

Praneet Nadkar

Привет,

Я думаю, что это функция по умолчанию, присутствующая в Telerik RadTreeView.
http://demos.telerik.com/aspnet-ajax/treeview/examples/overview/defaultcs.aspx[^]

Он также может присутствовать в asp TreeView. Попробуйте поискать, и вы узнаете.

С уважением,
Пранит


CHill60

Этому вопросу уже почти 3 года !! (ОП также не упоминал об этом ASP.net)

Рейтинг:
0

Tajuddin_HYD

Код проектирования:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">

        function postBackByObject() {
            var o = window.event.srcElement;
            if (o.tagName == "INPUT" && o.type == "checkbox") {
                __doPostBack("", "");
            }
        }
   </script>


</head>
<body>
    <form id="form1" runat="server">
    <div>

        <asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All"



            AutoGenerateDataBindings="False" ExpandDepth="0"

               EnableClientScript="true"

            ontreenodepopulate="TreeView1_TreeNodePopulate"

            ontreenodecheckchanged="TreeView1_TreeNodeCheckChanged"

            onselectednodechanged="TreeView1_SelectedNodeChanged" >

        </asp:TreeView>


     <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>




    </div>
    </form>
</body>
</html>



Код Cs :



public partial class Default2 : System.Web.UI.Page
{
    DataTable dt = new DataTable();
    private SqlConnection con;
    protected void Page_Load(object sender, EventArgs e)
    {
            TreeView1.Attributes.Add("onclick", "postBackByObject()");

            if (!IsPostBack)
            {
                string cs = "server=sql2005 ;database=dbName; uid=sa;pwd=123";
                con = new SqlConnection(cs);
                con.Open();
                SqlCommand cme = new SqlCommand("select * from tbName where parenttab=0 and roleid=1", con);
                //cme.CommandType = CommandType.StoredProcedure;

                SqlDataAdapter da = new SqlDataAdapter(cme);
                DataSet ds = new DataSet();
                da.Fill(ds, "T");

                dt = ds.Tables["T"];
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    TreeNode no = new TreeNode();
                    no.Text = dt.Rows[i]["LinkName"].ToString();
                    // no.SelectAction = TreeNodeSelectAction.SelectExpand;

                    no.Value = dt.Rows[i]["LinkId"].ToString();
                    int a = Convert.ToInt32(dt.Rows[i]["LinkId"]);

                    // int a = Convert.ToInt32(dt.Rows[i]["LinkId"]);
                    AddTrem(no,a);
                    this.TreeView1.Nodes.Add(no);

                }
            }
    }

    public void AddTrem(TreeNode no,int a)
    {

        SqlCommand cme = new SqlCommand("select * from tbName where parenttab="+a, con);
        SqlDataAdapter da = new SqlDataAdapter(cme);
        DataSet ds = new DataSet();
        da.Fill(ds);
        DataTable dt = new DataTable();
        dt = ds.Tables[0];
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            TreeNode childnode = new TreeNode();
            childnode.Text = dt.Rows[i]["LinkName"].ToString();
            childnode.Value = dt.Rows[i]["linkid"].ToString();
           // AddSubject(childnode);
            no.ChildNodes.Add(childnode);
        }
    }

}