zoukankan      html  css  js  c++  java
  • Sharepoint 中 Webpart 控件 ID转换 规则

    在做sharepoint的webpart时,有时需要用javascript去控制一些webpart部件,但是webpart部件在被生成在页面上时,id值会被转换,根据机器的不同,体现不同的ID,唯有掌握id转换的规律,才能真正有效的实现让javascript去控制webpart上的控件~

    我们先来看一段代码,看看一个DropdownList在被生成在网页上后的变成了什么:

    <span dir="none"><select name="ctl00$m$g_97c2f67c_040f_4ebb_a021_6180784a64cb$ctl00$Taxonomy$ctl00$DropDownChoice" id="ctl00_m_g_97c2f67c_040f_4ebb_a021_6180784a64cb_ctl00_Taxonomy_ctl00_DropDownChoice" title="所属分类" class="ms-RadioText">
          <option selected="selected" value="-- 请选择 --">-- 请选择 --</option>
          <option value="规章制度">规章制度</option>
          <option value="政策解读">政策解读</option>
          <option value="公司策略">公司策略</option>
    </select><br></span>

    下拉框的id从原来的"Taxonomy"变成了"ctl00_m_g_97c2f67c_040f_4ebb_a021_6180784a64cb_ctl00_Taxonomy_ctl00_DropDownChoice",很乱。

    sharepoint的webpart中,控件id的命名(生成后的)规则是:

    机器id + "_ctl00_" + 控件原来id + "_ctl00_ctl00_" + 控件类型

    控件原来的id和控件类型,都是相对死的,都是人为设定后可以得到的,关键是机器id怎么获得。

    下面这段代码将获得机器id:

               string id = string.Empty;

                try
                {
                    foreach (WebPart wp in this.Zone.WebParts)
                    {
                        if (wp is Microsoft.SharePoint.WebPartPages.ListFormWebPart) //首先找到列表webpart
                        {
                            Microsoft.SharePoint.WebPartPages.ListFormWebPart listWp =
                                    (Microsoft.SharePoint.WebPartPages.ListFormWebPart)wp;
                            id = listWp.ClientID;
                        }
                    }
                }
                catch    {     }

    所以,一个原来id为"AuthorName"的单行文本框的生成后id,应该是:

                string id = string.Empty;

                string result= id + "_ctl00_AuthorName_ctl00_ctl00_TextField";

                try
                {
                    foreach (WebPart wp in this.Zone.WebParts)
                    {
                        if (wp is Microsoft.SharePoint.WebPartPages.ListFormWebPart)

                        {
                            Microsoft.SharePoint.WebPartPages.ListFormWebPart listWp =
                                    (Microsoft.SharePoint.WebPartPages.ListFormWebPart)wp;
                            id = listWp.ClientID;
                        }
                    }
                }
                catch    {     }

  • 相关阅读:
    BZOJ 3611: [Heoi2014]大工程 [虚树 DP]
    BZOJ 3991: [SDOI2015]寻宝游戏 [虚树 树链的并 set]
    BZOJ 2286: [Sdoi2011消耗战 [DP 虚树]
    BZOJ 4767: 两双手 [DP 组合数]
    BZOJ 1426: 收集邮票 [DP 期望 平方]
    转「服务器运维」如何解决服务器I/O过高的问题
    iostat查看linux硬盘IO性能
    Linux前台、后台、挂起、退出、查看命令汇总
    Linux虚拟内存的作用
    -bash: iostat: command not found解决办法
  • 原文地址:https://www.cnblogs.com/rynnwang/p/2517185.html
Copyright © 2011-2022 走看看