Adn*_*tti 3 c# asp.net master-pages httpwebrequest
我有一个母版页,其内容部分的id为cpMainContent.我正在为大学项目创建的每个webform上使用这个母版页.其中一种形式是frmSearchPersonnel.frmSearchPersonnel的目的是询问用户他们想要在文本框中搜索的人的姓氏,然后单击搜索按钮.TextBox的ID是
txtSearchName
Run Code Online (Sandbox Code Playgroud)
搜索按钮会将postbackUrl传输到另一个名为frmViewPersonnel的表单.在frmViewPersonnel中我试图使用以下代码.
NameValueCollection myRequest = Request.Form;
if(!string.IsEmptyOrNull(myRequest["txtSearchName"]))
string strSearch = myRequest["txtSearchName"];
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,没有找到任何名称为txtSearchName的控件.调试时我在myRequest对象中找到了这个,
[5] "ctl00$cpMainContent$txtSearchName" string
Run Code Online (Sandbox Code Playgroud)
即使我添加文本框时,我给它提供了txtSearchName的ID,但是当呈现页面时,它正在从母版页添加额外的字符串.
谷歌搜索和Binging我发现在这种情况下我可以使用Control.ClientID进行调查.
如下所示,在控件的html中添加ClientIDMode ="static"或在page指令中添加它.它的作用是,它将ID保持为txtSearchName,但问题是这样,
<input name="ctl00$cpMainContent$txtSearchName" type="text" id="txtSearchName" />
Run Code Online (Sandbox Code Playgroud)
这里的名字仍然使用ctl00和我上面显示的代码,
string strSearch = myRequest["txtSearchName"]
Run Code Online (Sandbox Code Playgroud)
它仍然无法正常工作,因为nvc集合可以通过索引或名称直接搜索而不是id.
==============

Run Code Online (Sandbox Code Playgroud)<asp:TextBox ID="txtSearchName" runat="server" ClientIDMode="Static" />
如果要使用所有控件ClientIDMode="Static",可以将其放在主文件的页眉中.
<%@ Page Language="C#" ClientIDMode="Static" %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1925 次 |
| 最近记录: |