J'ai trouvé que SP ressemble à la propriété Text de asp: TextBox et à la propriété non existante Value. Il sera changé après la réinitialisation d'IIS. Donc, quand SP regarde à Value, le filtre ne fonctionne pas.
La réponse est deux écrire votre propre contrôle ascx CustomTextBox basé sur ASP: TextBox. N'oubliez pas que vous ne pouvez pas copier les fichiers codebehind habituels vers SP.
D'abord, écrire le fichier codebehind complet et le compiler à DLL (je l'ai appelé SearchTextBox.dll):
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;
}
}
}
}
puis attribuez-lui cette DLL avec les touches et insérez le GAC du serveur (ou accorder des droits spéciaux). Après cela, vous pouvez lier l'assemblage avec la clé publique dans le fichier de contrôle ascx (sans les fichiers codebehind). fichier NewTextBox.ascx:
<%@ 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>
Copie NewTextBox.ascx à ... \ 12 \ TEMPLATE \ ControlTemplates \
contrôle NewTextBox.ascx est prêt à l'emploi. Nous avons juste besoin de l'enregistrer dans la page SP:
<%@ Register Src="~/_controltemplates/NewTextBox.ascx" TagName="NewTextBox" TagPrefix="MyCompany" %>
et insérez-le à cette page:
<MyCompany:NewTextBox id="TextBoxSearch" runat="server"/>