- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
了解自动完成属性后 - ContextKey
我正在使用它作为优势:
每个扩展器对象的数据源将由相同的 WebMethod 处理。
这本身就是我的成就。
既然一切都已经很完美了,问题是:
当对 AutoComplete-Datasource 的请求由第二个文本框发送时,我需要传递另一个参数,就在 stage = table 被选中之后。
所以现在我不仅需要硬编码/常量,还需要所选表的值。
这实际上是 #TBX_TableSelectorFirstStage
的值,以及硬编码的 ContextKey
值...
(类似于 ContextKey += TBX_TableSelectorFirstStage 的值
)
这样我就可以通过请求的表(表的名称)绘制指定的列列表
这是Jquery
代码
<script type="text/javascript">
$('document').ready(function () {
var IvalidValue_Msg = "table was not selected";
var TBX_tables = $(this);
var TBX_Columns = $('#TBX_ColumnsSelectorFirstStage');
$('#TBX_TableSelectorFirstStage')
.val("Choose a Table")
.focus(function () {
$(this).val("");
$(this).attr("dir", "ltr");
}).blur(function () {
var TBXTablsVALUE = $('#TBX_TableSelectorFirstStage').val();
var Lngth = $('#TBX_TableSelectorFirstStage').val().length;
var InvalidTBXBlur_TablesValue = TBXTablsVALUE == "" || TBXTablsVALUE == " " || Lngth < 4;
if (InvalidTBXBlur_TablesValue) {
$(this).focus();
$(this).val(IvalidValue_Msg);
}
else {
$(TBX_Columns).focus();
SetContextKeyValue();
}
//$(this).next(':input').focus();
}).change(function () {
var TBXTablsVALUE = $('#TBX_TableSelectorFirstStage').val();
var Lngth = $('#TBX_TableSelectorFirstStage').val().length;
var InvalidTBXBlur_TablesValue = TBXTablsVALUE == "" || TBXTablsVALUE == " " || Lngth < 4;
if (InvalidTableValue) {
$(this).val(IvalidValue_Msg);
}
else {
SetContextKeyValue();
}
}).click(function () {
$(this).val("");
});
});
/// ==========================================================\\\
///Jquery Section That Is Suppose To manipulate contextKey Property.
function SetContextKeyValue() {
// var ttt = $get('AjaxAcEx_Columns_FirstStage',
alert("asasas");
// var x = $('#AutoCompleteExtender3'); //.set_contextKey($get('AjaxAcEx_Tables_FirstStage').value);
alert($('#AjaxAcEx_Columns_FirstStage').attr("id"));
}
这是ASPX代码
<form id="form1" runat="server">
<cc1:ToolkitScriptManager ID="ToolKitScrptMan1" runat="server"></cc1:ToolkitScriptManager>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" TargetControlID="TBX_FntsAC" runat="server"
MinimumPrefixLength="1" EnableCaching="true" CompletionSetCount="1" CompletionInterval="100"
ServiceMethod="MyAcReqHandler" ContextKey="acFontsRquest"
FirstRowSelected="true" CompletionListCssClass="CL_Css_DataBase" CompletionListItemCssClass="CL_ItemCss_DataBase" CompletionListHighlightedItemCssClass="CL_tHighlightedItemCss_DataBase">
</cc1:AutoCompleteExtender>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender2" BehaviorID="AjaxAcEx_Tables_FirstStage" TargetControlID="TBX_TableSelectorFirstStage" runat="server"
MinimumPrefixLength="1" EnableCaching="true" CompletionSetCount="1" CompletionInterval="100"
ServiceMethod="MyAcReqHandler" ContextKey="acTablesSelector_FirstStage"
FirstRowSelected="true" CompletionListCssClass="CL_Css_DataBase" CompletionListItemCssClass="CL_ItemCss_DataBase" CompletionListHighlightedItemCssClass="CL_tHighlightedItemCss_DataBase">
</cc1:AutoCompleteExtender>
<%-- Here is where i am stuck .
object /element - AutoCompleteExtender3 / BehaviorID AjaxAcEx_Columns_FirstStage
This is the object i need to Set it's ContextKey attribute-value,
with the result value of #TBX_TableSelectorFirstStage
--%>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender3" BehaviorID="AjaxAcEx_Columns_FirstStage" TargetControlID="TBX_ColumnsSelectorFirstSTage" runat="server"
MinimumPrefixLength="1" EnableCaching="true" CompletionSetCount="1" CompletionInterval="100"
ServiceMethod="MyAcReqHandler" ContextKey="acColumnsSelector_FirstStage"
FirstRowSelected="true" CompletionListCssClass="CL_Css_DataBase" CompletionListItemCssClass="CL_ItemCss_DataBase" CompletionListHighlightedItemCssClass="CL_tHighlightedItemCss_DataBase">
</cc1:AutoCompleteExtender>
<div id="Div_firstStage" runat="server" style="width:90%" dir="rtl">
<asp:TextBox ID="TBX_TableSelectorFirstStage" runat="server" />
<asp:TextBox ID="TBX_ColumnsSelectorFirstStage" runat="server" />
</div>
* .Cs 代码隐藏* (webMethod)
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod(EnableSession = true)]
public static List<string> MyAcReqHandler(string prefixText, string contextKey)
{
List<string> retListAC = new List<string>();
switch (contextKey)
{
case AutoComplete.Param.acTablesSelector_FirstStage:
retListAC = GetListForAutoComplete<HTDB_Tables>(App.VarNms.SesDbTablsList);
break;
case AutoComplete.Param.acColumnsSelector_FirstStage:
retListAC = GetListForAutoComplete<HTDB_Cols>(App.VarNms.SesDbTablsList);
break;
case AutoComplete.Param.acFontsRquest_SecondStage:
retListAC = GetListForAutoComplete<fntNams>(App.VarNms.SesFontsList);
break;
}
return AutoComplete.FromListStr(prefixText, retListAC);
}
private static List<string> GetListForAutoComplete<TheClassNameHere>(string SessionVarName, string NestedClassName="")
{
List<string> ReturnedList = new List<string>();
if (CurrSesVarSet.SesVar_AcDsListStr.Count == 0)
{
bool isNested = typeof(TheClassNameHere).IsNested;
switch (isNested)
{
case true:
ReturnedList = RflectMeths.anyNestedClassFldsAsListByType<TheClassNameHere>(NestedClassName);
break;
default:
ReturnedList = RflectMeths.anyClassFldsAsListByType<TheClassNameHere>();
break;
}
CurrSesVarSet.SesVar_AcDsListStr = ReturnedList;
CurrentSession.AddVar(SessionVarName, ReturnedList);
}
else
if (CurSessionMesthods.VarExistStat(App.VarNms.SesFontsList))
ReturnedList = CurSessionMesthods.GetSessionVar.AsListStr(SessionVarName);
else ReturnedList = CurrSesVarSet.SesVar_AcDsListStr;
return ReturnedList;
}
由于此应用程序的一项努力是避免完全回发,我想实现 - 通过Jquery
设置ContextKey
> , ... 除非 我的基本假设是错误的,即通过 c# 执行此操作 - 代码隐藏将导致整页回发,因此如果在没有重新加载页面的情况下完成,我不应该在意只要我能发送这个参数,直到现在我一直保持着类似桌面的用户体验(;
感谢您的帮助,解决此问题将不胜感激!
最佳答案
我已经为这个答案搜索了很多,因为我找不到关于这个实现的任何信息我想我必须更加努力,因为我记得有人告诉我一些关于运动的事情,你必须做到这一点才能赢得这场比赛,所以尽可能快地开始,然后加速,尽管看起来很难发现我只是多工作了一点。
所以我缺少什么,因为我缺乏使用 Jquery 的最少经验
我在互联网上找到的一件事是可用于设置 ContextKey 的功能因为我太忙于尝试寻求帮助(现成的代码示例完全适合我的场景)最终经过更多的尝试和错误,我不得不认为如果有一套。必须有一个 get (:
所以这就是您可以操作现有 key 并将其与您想要的任何其他内容连接的方式
$('document').ready(function () {
var IvalidValue_Msg = "table was not selected";
var TBX_tables = $(this);
var TstTBXCLS = $(this).next();
var TBX_Columns = $('#TBX_ColumnsSelectorFirstStage');
$('#TBX_TableSelectorFirstStage')
.val("Choose a Table")
.focus(function () {
$(this).val("");
$(this).attr("dir", "ltr");
}).blur(function () {
var TBXTablsVALUE = $('#TBX_TableSelectorFirstStage').val();
var Lngth = $('#TBX_TableSelectorFirstStage').val().length;
var InvalidTBXBlur_TablesValue = TBXTBLSVALUE == "" || TBXTBLSVALUE == " " || Lngth < 4;
if (InvalidTBXBlur_TablesValue) {
$(this).focus();
$(this).val(IvalidValue_Msg);
}
else {
$(TBX_Columns).focus();
SetContextKeyValue();
}
//$(this).next(':input').focus();
}).change(function () {
var TBXTablsVALUE = $('#TBX_TableSelectorFirstStage').val();
var Lngth = $('#TBX_TableSelectorFirstStage').val().length;
var InvalidTBXBlur_TablesValue = TBXTBLSVALUE == "" || TBXTBLSVALUE == " " || Lngth < 4;
if (InvalidTableValue) {
$(this).val(IvalidValue_Msg);
}
else {
SetContextKeyValue(TBXTBLSVALUE );
}
}).click(function () {
$(this).val("");
});
});
function SetContextKeyValue(selectedTableName) {
var CurrentConextKey = $find('AjaxAcEx_Columns_FirstStage').get_contextKey();
var JointParams = CurrentConextKey + "_" + selectedTableName;
$find('AjaxAcEx_Columns_FirstStage').set_contextKey(JointParams);
alert(JointParams);
}
然后在后面的 c# 代码中,只需使用 string.Split('_')
,将它们都获取到一个 c# 变量中。我希望这会帮助其他人使用相同的用例,因为示例并不容易找到。
关于c# - AJAX AutoComplete Extender - 设置 ContextKey 参数值并将其与 prefixText 一起传递给 WebMethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13946717/
SELECT ID, AppID, Description, Min([Transaction Date]) AS TransactionDate FROM AppProsHist WHERE [De
目前我正在创建规则,该规则应该检查方法是否包含 @Test 和 @TestInfo 注释。如果确实如此,@TestInfo 不应有空参数 testCaseId。 有几种不同的可能方法来填充 testC
是否可以设置参数值,使其在 where 子句中始终结果为 true? 作为示例,考虑一个查询: SELECT name FROM student WHERE class=@parameter; 现在我
我是 JPA 的新手,这是我的查询之一,我有几个参数作为查询的一部分,任何参数都可以为空值 @Query(value = "SELECT ord.purchaseOrderNumber,ord.sal
LOD 参数对 texturelod 取什么值? ?我发现的规范根本没有提到它。它是百分比还是带有百分比的索引值。如果是后者,有没有办法获得纹理具有的 mipmap 数量,以便我能够使用百分比? 最佳
我希望此代码替换现有的 URL 参数“aspid”,但它的作用是在现有的 id 上添加另一个 id。有人可以帮忙吗? $(document).ready(function() { function
在 Spring-boot 项目中,我尝试将 Date 对象作为请求参数传递,并收到此错误: Parameter value [1] did not match expected type [java
在我们的 Jenkinsfile 中,我们有很多参数(参数化构建),在这种情况下,我想检查每个参数是否已切换并对其进行操作。这些参数具有相似的名称,但以不同的小数结尾,因此我想迭代它们以实现此目的。
我的模板之一中有类似于以下内容的内容: 但是 Freemarker 不高兴并给了我: Exception in thread "main" freemarker.core.ParseExceptio
我正在从表单向重定向 servlet 发送一个 post 请求。然后,Servlet 将表单写入其响应 (getWriter) 对象。该表单包含许多隐藏字段。我使用 javascript 提交此表单(
我正在创建一个 JavaScript 组件,我正在根据 jQuery 结果创建该组件的实例,但是,我传递到构造函数中的 DOM 元素虽然在我单步执行调用代码中的循环时已填充,但在传递给构造函数时是未定
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我对 javascript 有疑问。 假设我有这样的 javascript 函数: function show_popup(id) { alert(id); } 编
我目前正在尝试抓取嵌入式 m3u8 url 路径以进行自学。 到目前为止,我设法确定请求会生成带有 m3u8 信息的 json 响应。 例如,https://headlines.yahoo.co.jp
谷歌地图 API 需要这样的参数: NSString *urlString=@"http://maps.google.com/maps?saddr=43.2923,5.45427&daddr=43.4
“parameterValue”是在 Javascript 中的事件上传递的默认参数吗?谁能解释一下这个值从何而来。 Load Ajax content 我发现它在以下文章中使用 - http://w
我有一个 .SWF 电子邮件提交表单。背景颜色通过以下方式设置: `` 并嵌入: `` 是否可以将鼠标悬停在对象或包含的 div 上来更改这些值?即#ffffff 非常感谢! 最佳答案 将 wmode
假设我想用指数函数拟合两个数组x_data_one和y_data_one。为此,我可以使用以下代码(其中 x_data_one 和 y_data_one 被赋予虚拟定义): import numpy
有什么方法可以填充 parameters在基于外部属性文件内容的 Liquibase 变更日志文件中? 例如,我希望能够说: 并将 table.name 的值和
我必须按原样发送参数值 'AbCd/EfgH'。但是 Angular 将 '/' 转义为 %2F。我无法控制 URL。 解决这个问题的最佳方法是什么? 我不想强制 Angular 停止对所有其他 UR
我是一名优秀的程序员,十分优秀!