我编写的代码在用户选择有效的东西(下面)后,无法使用JQuery自动完成来触发结果函数.
结果,我的意思是结果处理程序,一个在自动完成插件中进行了良好选择后触发的函数.记录在这里.
在我的例子中,我有一个表格,它实际上是一个表格,每行都相同,减去字段上的唯一ID:Item1,Qty1,Desc1,然后是Item2,Qty2,Desc2,依此类推.当用户键入Item1代码时,Desc1文本应显示所选项目代码的英语(Item2 - > Desc2,依此类推).
我使用此代码查找所有项目输入并在其上拍打自动完成.结果事件处理程序由于某种原因不会触发.如果你注意到,我硬编码了"Item1"选项,因为我还没有弄清楚如何选择项目对应的描述,其中Item1 - > Desc1,Item2 - > Desc2,依此类推.
我使用MVC Url.Content只是因为我碰巧让它工作.有人使用了Url.Action,我觉得它更好,只需要搞清楚.
如有必要,请随意更正我的使用,这是我第一次使用ASP.NET MVC/JQuery.
谢谢 :)
代码:
$(document).ready(function(){
$("input[id^='Item']").autocomplete( "<%= Url.Content("~/products/autocomplete")%>", {
dataType: 'json',
parse: function(data) {
var rows = new Array();
for( var i = 0; i<data.length; i++)
{ rows[i] = {data:data[i], value:data[i].name, result:data[i].id }; }
return rows;
},
formatItem: function(row, i, n) {
return row.id + ' - ' + row.name;
},
selectFirst: true,
//autoFill: true,
minChars: 2,
max: 30,
autoFill: …Run Code Online (Sandbox Code Playgroud) 我有一个朋友正在使用c#Linq来报告下表:
varchar(50) name
datetime when
Run Code Online (Sandbox Code Playgroud)
客户希望选择要汇总的列,例如今年的总计,去年的总计,两周前的总计等等.每列将有一些开始和结束时间,他们用计数汇总.我为他做了一个快速选择声明:
select A.name as [Name],
(select count(*) from mytable B where A.name = B.name and
datepart(yy, when) = datepart(yy,getdate())) as [This Year],
(select count(*) from mytable B where A.name = B.name and
datepart(yy, when) = (datepart(yy,getdate()) - 1)) as [Last Year]
from (select distinct name from mytable) A
Run Code Online (Sandbox Code Playgroud)
我还建议他将每个计算字段设为一个委托,这样他就可以在查询之外包含计算混乱.假设每个委托都有一个开始和结束日期,计算每个不同名称的命中数,那么任何人都想要了解Linq c#代码的样子?
在MVC 2到Html.Encode()字符串中是否存在一些神奇的现有代码并允许某些html标记,如段落标记和中断?(从Linq到SQL数据库字段)
一个可怕的代码示例来实现这个效果:
Html.Encode(Model.fieldName).Replace("<br />", "<br />")
Run Code Online (Sandbox Code Playgroud)
真正好的是重载一些东西并传递给一个充满允许的html标签的数组(或对象).
在这两者中,字符串内容是相同的.如果你这样做:
myDiv.innerHTML += "<table><tr><td>A</td><td>B</td></tr></table>";
Run Code Online (Sandbox Code Playgroud)
你得到一个有两列的表.
如果你这样做:
myDiv.innerHTML += "<table>";
myDiv.innerHTML += "<tr>";
myDiv.innerHTML += "<td>A</td>";
myDiv.innerHTML += "<td>B</td>";
myDiv.innerHTML += "</tr>";
myDiv.innerHTML += "</table>";
Run Code Online (Sandbox Code Playgroud)
你只得到<table></table>标签.没有其他标记存在.
这是因为JavaScript将内容的含义更改为对象,那么我们是不是将TD添加到Table对象中?为什么会这样呢?
顶部的BigQuery获取一组Products和嵌套的相关表.然后,我在规范模式的不良尝试中应用过滤.这是过滤器代码.查询中有三个表,我想通过嵌套在底部查询中的值来过滤顶部查询.就像我说的,这目前产生了我们想要的结果.
但是,.Contains()为每个产生一个SQL WHERE EXISTS()子句.我们真的只需要一个,但我不知道如何获取内部ID与外部ID进行比较.
from p in bigQuery // Root table
where ( from pp in p.LPP // Level 1 nested table
where (from pv in pp.LPV // Level 2 nested table
where pv.colorid == intValue // Our filter value
select p.id).Contains(p.id) // Where exists
select p.id).Contains(p.id) // Where exists
select p;
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?这样就生成了一个900行的SQL语句,到目前为止我们只有一个过滤器.
我们的客户向我们提供重复项目的合同.我们宣传独特的产品.如何在不进行多次子查询的情况下选择一组具有描述的不同upc?可怕的例子:
/*
eventID int
groupID int // This field is different between fields
upc_ean numeric(18,0)
description varchar(512) // Description is slightly different but same info
size varchar(512) // Size is slightly different but same info
*/
select A.eventid, A.upc_ean,
( select top 1 description
from myTable B
where B.eventid = A.eventid and B.upc_ean = A.upc_ean) as description,
( select top 1 size
from myTable B
where B.eventid = A.eventid and B.upc_ean = A.upc_ean) as size
from ( select distinct eventid, …Run Code Online (Sandbox Code Playgroud) 在这段代码中,j正确地成为一个对象:j.name,j.addr,j.city,j.state和j.zip.但是,成功函数的JavaScript错误.tmpl()不是函数.
<script id="addressTemplate" type="text/x-jquery-tmpl">
{{tmpl "addressTemplate"}}
<tr><td>Name: ${name}</td></tr>
<tr><td>Address: ${addr}</td></tr>
<tr><td>City: ${city}</td></tr>
<tr><td>State: ${state}</td></tr>
<tr><td>Zip: ${zip}</td></tr>
</script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "POST",
url: "Home/GetInfo",
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (j) {
$("#addressTemplate").tmpl(j).appendTo("#result");
}
});
});
</script>
<div id="result"></div>
Run Code Online (Sandbox Code Playgroud)
调用JQuery 1.5模板我做错了什么?
我有这个TSQL代码使用BCP从表中转储数据.它看起来很复杂,但它只是创建一个@command字符串,为每个表执行一次,然后BCP将表记录转储到磁盘.这是一种快速备份所有表数据的好方法.下面我展示了一个更容易阅读的解析版本.
set @command =
'if (''?'' <> ''[dbo].[sysdiagrams]'')
BEGIN;
create table #result (result nvarchar(2048) null );
declare @temp nvarchar(1000);
set @temp = ''' + @bcpPath + ' ' + @database + '.dbo.'' +
substring( ''?'', 8, len(''?'')- 8) +
'' out "' + @driveLetter + @drivePath +
'\'' + substring( ''?'', 8, len(''?'')- 8) +
''.out" -c -x -t"|" -Uuser -Ppassword'';
insert into #result (result)
exec xp_cmdshell @temp;
drop table #result;
END;'
exec sp_msforeachtable @command
Run Code Online (Sandbox Code Playgroud)
的@bcppath是C:\Program Files\Microsoft …
这会在列表的每个项旁边放置一个复选框,其中更改已检查状态会从SelectedItems数组中添加/删除该值:
<script type="text/x-jquery-tmpl" id="tmpl">
<input name="cSelect"
type="checkbox"
value="${ ID }"
data-bind="checked: VM.SelectedItems" />
<!-- Add other item content here -->
</script>
VM.SelectedItems = ko.observeableArray([]);
Run Code Online (Sandbox Code Playgroud)
在任何时候,SelectedItems都包含已检查项目的ID.
如果我希望复选框向SelectedItems添加和删除对象,该怎么办? 例如,我想存储一个实际的对象,{ id : 3, checked : true }而不是为value属性序列化它?
有什么方法可以在C#中将破折号作为属性名称的一部分?
在SQL中,它是[some-thing].在JavaScript中,它是myObject["some-thing"]
我要求尽量避免编写自定义XML序列化程序,该序列化程序在元素名称中使用破折号(而非选择).
javascript ×2
t-sql ×2
actionresult ×1
asp.net-mvc ×1
autocomplete ×1
batch-file ×1
c# ×1
c#-4.0 ×1
dom ×1
html-encode ×1
jquery-1.5 ×1
knockout.js ×1
linq ×1
sql ×1
sql-server ×1
templates ×1
where-clause ×1
xp-cmdshell ×1