首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextBox中的sharepoint筛选器DataFormWebPart

TextBox中的sharepoint筛选器DataFormWebPart
EN

Stack Overflow用户
提问于 2010-06-21 22:19:57
回答 1查看 1.3K关注 0票数 0

我想通过asp:TextBox过滤DFWP。

使用Office Designer,我将带有数据的DFWP添加到页面。添加asp:带有runat server,autopostback和ID="textBoxSearch“的textbox。在DFWP中创建了变量var,并在源代码部分中选择了元素textBoxSearch。

然后添加过滤器"field_1包含var“。

这个搜索(过滤器)工作了两个星期,然后过滤器坏了。只有重新创建DFWP才有帮助。又过了一周,过滤器坏了。筛选器忽略了文本框中的所有文本。

我计算出SP在变量var中看不到asp:textbox "textBoxSearch“,因为如果将”包含变量“改为”包含一些文本“,它就会起作用。

怎么可能--工作了一段时间,然后意外地不工作了?

如果不使用内部过滤器web-part,而是使用textbox,如何修复?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-23 15:40:34

我发现SP查找asp:TextBox的属性文本和不存在的属性值。它将在IIS重置后更改。因此,当SP查找值时,过滤器不起作用。

答案是两个写自己的控件CustomTextBox基于asp:CustomTextBox。

别忘了,你不能将通常的代码隐藏文件复制到SP。

首先,编写完整的代码后台文件,并将其编译成DLL(我称之为SearchTextBox.dll):

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;


namespace WebApplication3
{
    public partial class NewTextBox : System.Web.UI.UserControl
    {
        protected global::System.Web.UI.WebControls.TextBox TextBox_PhoneSearch;

        protected void Page_Load(object sender, EventArgs e)
        {

        }
        public string Text
        {
            get { return TextBox_PhoneSearch.Text; }
            set { TextBox_PhoneSearch.Text = value; }
        }
        public string Value
        {
            get
            {
                return TextBox_PhoneSearch.Text;
            }
        }
    }
}

然后将此DLL分配给密钥并插入到服务器GAC (或赋予特殊权限)。

之后,你可以在ascx控制文件(没有代码隐藏文件)中链接带有公钥的汇编。NewTextBox.ascx文件:

代码语言:javascript
复制
<%@ Assembly Name ="SearchTextBox, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b341d7aadf237863"%>
<%@ Control Language="C#" AutoEventWireup="true" Inherits="WebApplication3.NewTextBox" %>
<asp:TextBox ID="TextBox_PhoneSearch" runat="server" AutoPostBack="true" class="ms-sbplain" style="width: 280px;"></asp:TextBox>

将NewTextBox.ascx复制到...\12\TEMPLATE\CONTROLTEMPLATES\

Control NewTextBox.ascx可以使用了。我们只需要在SP页面中注册:

代码语言:javascript
复制
<%@ Register Src="~/_controltemplates/NewTextBox.ascx" TagName="NewTextBox" TagPrefix="MyCompany" %>

并将其插入到此页面:

代码语言:javascript
复制
<MyCompany:NewTextBox id="TextBoxSearch" runat="server"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3085444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档