Ajax控件练习 Accordion 和 Cascade

Accordion快速回顾
CascadingDropDown回顾

1.Accordion练习(可折叠控件,单词意思:手风琴)
  0.准备工作:
     1.先搭建三层(简单方法:先复制一个项目,把三层留下,其他的全部删除,以后可以用模板生成)
     2.最好新建一个模板页(放ScriptManager),然后,把样式复制到项目,再拖到模板页
     3.再新建Accordion.aspx(继承模板页)
  1.静态的,Accordion(n多属性) Panes AccordionPane(一个runat="server" 加2个节点Header Content)
            在Accordion.aspx放一个Accordion_1,然后配置下Accordion_1,就可以看到效果了

静态Accordion代码

  2.动态的(即与数据库绑定)Accordion(n多属性)+ 后台代码

动态Accordion代码

 

CascadingDropDown

----------------------------------------------------------
---------------------------------------------------------

1.CascadingDropDown(级联控件 Cascade单词意思:小瀑布)
   1.新建一个服务Ws_Cascade,新建页面Cascading_Learn,放2个CascadingDropDown和2个DropDownList
   2.App_Code里的Ws_Cascade.cs和Cascading_Learn.aspx的源视图的代码如下

Cascade代码

   3.思路整理:
      1.当页面加载到CascadingDropDown_Category控件时(自动找到服务ServicePath="Ws_Cascade.asmx"
        并调用ServiceMethod="GetCategory")CascadingDropDown_Category控件的目的很单纯,
        就是把GetCategory方法得到的数据 绑定到ddl_Category
      2.当点ddl_Category里的内容时,由于CascadingDropDown_Product的ParentControlID和"ddl_Category"关联
        这样CascadingDropDown_Product里面的方法ServiceMethod="GetProduct"的参数就有值
        (knownCategoryValues)然后理所当然的执行完这个方法后,就自动把数据绑定到ddl_product
    4.WebService里的2个方法的解释(仅是自己的推测)
    [WebMethod]
    public CascadingDropDownNameValue[] GetCategory(string knownCategoryValues,string category)
    {
        List<CascadingDropDownNameValue> categories = new List<CascadingDropDownNameValue>();
        foreach (Category category1 in CategoryManager.SelectAll())
        {
            categories.Add(new CascadingDropDownNameValue(category1.CategoryName,category1.CategoryId.ToString()));
        }
        return categories.ToArray();
    }
     1.CascadingDropDownNameValue  //一个类,有2个属性name,value
     2.CascadingDropDownNameValue[]  //最后和DropDownList绑定的数据
     3.knownCategoryValues  //  当点击ddl_Category里面的数据时(比如:单击第一条)就会产生一个
                                    knownCategoryValues(Category:1),那么以ddl_Category为ParentControlID
                                    的CascadingDropDown_Product,就会通过knownCategoryValues查到值        
     4.category  //是产生knownCategoryValues时的键,比如点击ddl_Category里面的数据时,
                CascadingDropDown_Category就会根据自己的category属性("Category")和所选的ddl_Category
                所选的SelectedValue产生一个knownCategoryValues(Category:1)

    [WebMethod]
    public CascadingDropDownNameValue[] GetProduct(string knownCategoryValues, string category)
    {
        List<CascadingDropDownNameValue> products = new List<CascadingDropDownNameValue>();

        StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
        foreach (Product product in ProductManager.GetByCategory(Convert.ToInt32(kv["Category"])))
        {
            products.Add(new CascadingDropDownNameValue(product.ProductName, product.ProductId.ToString()));
        }
        return products.ToArray();
    }
  1.当点ddl_Category里的内容时,就会把一条记录保存在knownCategoryValues,它的键是category设置的值
   ("Category")值是被选中的ddl_Category里的ddl_Category.SelectedValue
  2.knownCategoryValues是把键和值以某种方式拼接成的字符串(比如category:1整个就是一个字符串),并不能
    直接调用,所以要转换成StringDictionary(以键值对保存的集合),这样就可以通过键取到值了kv["Category"]。
  5.代码:下载

你可能感兴趣的:(accordion)