我有多个关键字搜索,我想制作多个标签来显示每个关键字的搜索结果。
这是我尝试过的:
当用户输入“keyword1;keyword2;keyword3”然后点击搜索,我会调用Dosearch():
//Process processes input String
String sProcesses = txtProcesses.Text;
string[] arrProcess = sProcesses.Split(';');
for (int i = 0; i < arrProcess.Length; i++)
{
CompaniesDatagrid control = (CompaniesDatagrid)LoadControl("~/WMCCM/Companies/CompaniesDatagrid.ascx");
//control.KeywordProcess = arrProcess[i];
control.ProcessInputClause = arrProcess[i];
control.SkillInputClause = txtSkills.Text;
control.KeywordInputClause = txtKeyword.Text;
...
control.ReloadDetails();//This is the function to make db query and bind data to the display.
InSearch = true;
//add process Tab
bool exists = false;
foreach (object ix in TabStrip_Control_Companies.Items)
{
if (ix is Tab && ((Tab)ix).Text == arrProcess[i])
{
exists = true;
}
}
if (exists == false)
{
Tab tab = new Tab();
tab.Text = String.Format("{0}", arrProcess[i]);
tab.ToolTip = String.Format("Search by '{0}'", arrProcess[i]);
this.TabStrip_Control_Companies.Items.Add(tab);
TabSeparator sep = new TabSeparator();
this.TabStrip_Control_Companies.Items.Add(sep);
}
PageView pageView = new PageView();
pageView.Controls.Add(control);
this.MultiPage_Control_Companies.Controls.Add(pageView);
}
在我的 ascx 文件中,我定义:
<tr>
<td colspan="5">
<iewcc:tabstrip autopostback="false" height="25" id="TabStrip_Control_Companies" runat="server" TabSelectedStyle="font-size: 0.8em; font-weight: bold; color: #000000; background-color: #CCCCCC; border-color: #FFFFFF;" TabHoverStyle="background-color: #CCCCCC;" TabDefaultStyle="font-size: 0.8em; font-weight: bold; color: #666666; text-decoration: none; background-color: #B8B8B8; border-color: #FFFFFF;" SepDefaultStyle=" background-color: #FFFFFF; border-color: #FFFFFF;" Targetid="MultiPage_Control_Companies"></iewcc:tabstrip>
<iewcc:MultiPage id="MultiPage_Control_Companies" runat="server"></iewcc:MultiPage>
</td>
</tr>
我可以看到使用每个关键字的名称创建的选项卡,但我只能看到第一个关键字的第一个结果查询。当我点击下一个标签时,我感觉它重新加载了页面,并且在这个标签下没有结果。为什么其他选项卡无法使用新的控件搜索结果添加新的综合浏览量?