如果我取消选中treeview中的单个子节点,也会取消选中父节点,但也检查了其他子节点

时间:2013-04-29 04:37:26

标签: c# treeview

我的asp.net页面中有一个树视图,当我取消选择单个子节点并选择其他节点时,总是取消选择父节点。如果我取消选择另一个子节点并再次选择它,则父节点也会选择。我不知道为什么会出现这个问题?  ================================================== ================================

    public partial class frmTabMenuManagement : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindMenu();
        }    
    }
    public void BindMenu()
    {
        AdminMenuLogic al = new AdminMenuLogic();
        al.Description = "";
        ddlParentMenu.DataSource = al.FilterAdminMenu();

        ddlParentMenu.DataTextField = "Description";
        ddlParentMenu.DataValueField = "Id";
        ddlParentMenu.DataBind();
        ddlParentMenu.Items.Insert(0, new ListItem("As Parent", "0"));
    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        AdminMenuLogic amt = new AdminMenuLogic();

        if (btnSubmit.Text == "Submit")
        {
            if (txtMenuLink.Text == "")
            {
                Response.Write("<script language='javascript'>alert(' Menu Description Cannot be left Empty');</script>");
            }
            else if (txtDestinationLink.Text == "")
            {
                Response.Write("<script language='javascript'>alert(' Destination Link Cannot be left Empty');</script>");

            }
            else
            {
                amt.Description = txtMenuLink.Text;
                amt.IsActive = Convert.ToString(ddlIsActive.SelectedItem);
                amt.Url = txtDestinationLink.Text;
                amt.Parent = Convert.ToInt32(ddlParentMenu.SelectedValue);
                amt.saveAdminMenu();
                Response.Write("<script language='javascript'>alert('" + amt.OutPut + "');</script>");
                txtMenuLink.Text = "";
                txtDestinationLink.Text = "";
                BindMenu();//reflect instant changes
            }
        }
        else if (btnSubmit.Text == "Update")
        {
            amt.id = Convert.ToInt32(gvSearch.SelectedRow.Cells[1].Text);
            amt.Description = txtMenuLink.Text;
            amt.IsActive = Convert.ToString(ddlIsActive.SelectedItem);
            amt.Url = txtDestinationLink.Text;
            amt.Parent = Convert.ToInt32(ddlParentMenu.SelectedValue);
            amt.UpdateAdminMenu();
            Response.Write("<script language='javascript'>alert('" + amt.OutPut + "');</script>");
            txtMenuLink.Text = "";
            txtDestinationLink.Text = "";
            bindGrid();
            btnSubmit.Text = "Submit";
            BindMenu();//reflect instant changes
        }
    }


    protected void btnSearch_Click(object sender, EventArgs e)
    {
        if (btnSubmit.Text == "Update")
        {
            btnSubmit.Text = "Submit";
            txtMenuLink.Text = "";
            txtDestinationLink.Text = "";
        }
        bindGrid();


    }

    protected void gvSearch_SelectedIndexChanged(object sender, EventArgs e)
    {

        TabContainer1.ActiveTabIndex = 0;
        ddlParentMenu.Items.Add(gvSearch.SelectedRow.Cells[3].Text);
        ddlParentMenu.SelectedValue = gvSearch.SelectedRow.Cells[3].Text;
        txtMenuLink.Text = Regex.Replace(gvSearch.SelectedRow.Cells[2].Text, "amp;", "");
        txtDestinationLink.Text = Regex.Replace(gvSearch.SelectedRow.Cells[4].Text, "amp;", "");
        ddlIsActive.SelectedValue = gvSearch.SelectedRow.Cells[5].Text;
        btnSubmit.Text = "Update";
    }

    protected void txtMenuLink_TextChanged(object sender, EventArgs e)
    {
        if (char.IsWhiteSpace(txtMenuLink.Text.First()))
        {
            txtMenuLink.Text = Regex.Replace(txtMenuLink.Text, " ", "");
        }
    }

    protected void txtDestinationLink_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (char.IsWhiteSpace(txtDestinationLink.Text.First()))
                {
                    txtDestinationLink.Text = Regex.Replace(txtDestinationLink.Text, " ", "");
                }
            }
            catch (Exception ex)
            {
            }

    }

    protected void ddlParentMenu_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
    protected void gvSearch_RowDataBound(Object sender, GridViewRowEventArgs e)
    {

        GridViewRow row = e.Row;
        if (row.RowType == DataControlRowType.Header)
        {
            e.Row.Cells[1].Visible = false;
            // e.Row.Cells[3].Visible = false;
        }
        if (row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Cells[1].Visible = false;
            // e.Row.Cells[3].Visible = false;

        }



    }
    protected void gvSearch_PageIndexChanging(Object sender, GridViewPageEventArgs e)
    {
        gvSearch.PageIndex = e.NewPageIndex;
        bindGrid();
    }
    protected void gvSearch_PageIndexChanged(Object sender, EventArgs e)
    {

    }

    void bindGrid()
    {
        AdminMenuLogic al = new AdminMenuLogic();
        al.Description = txtSearch.Text;
        gvSearch.DataSource = al.FilterAdminMenu();
        gvSearch.DataBind();
    }

    protected void ddlIsActive_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
}

0 个答案:

没有答案