我一直在使用JQuery DataTables.这是我第一次使用行分组.我找到了一个我想要开始的好例子.- 分组
<td>在分组行中添加额外内容?如果我想在该分组行上显示分组工资的总和,该怎么办?现在,看起来您只能显示该组的名称.附加信息
我将从Ajax源返回数据.
更新1
因此,我构建了一个包含行分组的表,并找到了如何总结列的示例.我正在将该值插入<td>该组行中.我现在需要的是如何将总和数量分解为组而不是整个列的总和.我需要帮助.
"drawCallback": function (settings) {
var api = this.api(), data;
var rows = api.rows({ page: 'current' }).nodes();
var last = null;
//Calculates the total of the column
var total = api
.column(5) //the salary column
.data()
.reduce(function (a, b) {
return a + b;
}, 0);
//Groups the Office column
api.column(2, { page: 'current' }).data().each(function (group, i) {
if (last …Run Code Online (Sandbox Code Playgroud) 我想在Web.Config文件中指定应用程序中文件的路径,然后在控制器中调用该路径.从我在网上找到的,我大部分都在那里.
Web.Config中
<appSettings>
<add key="filePath" value= "~/App_Data/Physicians.xml" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
调节器
//Path of the document
string xmlData = ConfigurationManager.AppSettings["filePath"].ToString();
Run Code Online (Sandbox Code Playgroud)
但是,这指向了错误的位置.
如何从我的应用程序的根目录开始,将其指向我存储在App_Data文件夹中的文件?
我正在尝试一个简单的应用程序.我有三个通过Entity Framework引入的SQL表,并自动创建了模型.我希望能够在Visual Studio中自动构建创建/详细信息/编辑等视图.当我从单个模型(如单独的名称)进行脚手架时,我可以自动执行此操作,但在使用视图模型作为源时无法获得任何结果.
这是我的模特
名称
public partial class Name
{
public Name()
{
this.Addresses = new HashSet<Address>();
this.Emails = new HashSet<Email>();
}
public int ID { get; set; }
public string FIRST_NAME { get; set; }
public string LAST_NAME { get; set; }
public virtual ICollection<Address> Addresses { get; set; }
public virtual ICollection<Email> Emails { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
地址
public partial class Address
{
public int ADDRESS_ID { get; set; }
public int NameID { get; set; } …Run Code Online (Sandbox Code Playgroud) asp.net-mvc entity-framework viewmodel asp.net-mvc-scaffolding
我有一个SQL查询,按多个字段对参与者进行排名.我需要将其转换为LINQ,我知道它没有排名功能.有人可以帮忙转换吗?
如果有帮助,这就是它的作用.此查询从参与者表中提取参与者,并根据列出的字段对其进行排名RANK() OVER (ORDER BY W desc, L asc, RW asc, RL desc, HP desc, TB desc) AS RANK.接下来我只抓住那些排名第一或第二的人Where q1.RANK in ('1','2'),看看这两个排名是否有任何联系Having count(q1.ParticipantID) > 1
Select q1.RANK, count(q1.ParticipantID) as 'Count'
From (
Select Distinct ParticipantID, RANK() OVER (ORDER BY W desc, L asc, RW asc, RL desc, HP desc, TB desc) AS RANK
From vGroupStandings
Where CompetitionID = 8
and GroupNumber = 1
and EventID = 6
) as q1
Where q1.RANK in ('1','2')
Group …Run Code Online (Sandbox Code Playgroud) 我正在尝试从Web.config文件中的MVC5项目配置IIS身份验证设置.
这就是我所拥有的.我希望启用Windows身份验证并禁用匿名身份验证.
但是在IIS中发布我的包后,设置就是这样.
我还需要做什么才能在Web.config 中将匿名身份验证设置为已禁用?这不是<deny users "?"/>应该做的吗?
authentication asp.net-mvc authorization web-config windows-authentication
我希望在 ASP.NET 3.0 MVC 应用程序中使用 Windows 身份验证,并从 SQL 数据库中提取角色以实现 API 安全性。我将用类似的东西装饰 API 控制器方法[Authorize(Roles = "Admin")]
我在这里有很多东西,我是从这个网站上学到的,但我被困在最后一部分。我可以看到该角色应用于用户,但无法获得工作授权。
为此,我首先从 ClaimsTransformer 开始,它将用于通过对我的用户的声明来应用角色。
ClaimsTransformer.cs
public async Task<ClaimsPrincipal> TransformAsync(ClaimsPrincipal principal)
{
//This sample will automatically apply the Admin role to the user
//In the real app, I will check the user against my DB and apply all roles (as claims) here
var ci = (ClaimsIdentity)principal.Identity;
var c = new Claim(ci.RoleClaimType, "Admin");
ci.AddClaim(c);
return await Task.FromResult(principal);
}
Run Code Online (Sandbox Code Playgroud)
Startup.cs - 配置服务
public void ConfigureServices(IServiceCollection services)
{ …Run Code Online (Sandbox Code Playgroud) c# authorization windows-authentication asp.net-web-api asp.net-core
为了便于解释,我简化了这段代码.
我有一个cfm页面,用户点击表格行并获取ID.我想将该ID发送到CFC,在那里运行查询,并将结果返回到cfm页面.
这是JQuery的样子.
$.ajax({
url: "test.cfc?method=testFunction",
data: {ID:123456},
success: function(response) {
$("#div1").html(response);
}
});
Run Code Online (Sandbox Code Playgroud)
这就是cfc的样子.
<cfcomponent>
<cffunction name="testFunction" access="remote" returnType="query" returnFormat="JSON">
<cfquery name="testQuery" datasource="x">
Select ID, NAME
From Table
Where ID = '#url.ID#'
</cfquery>
<cfreturn testQuery>
</cffunction>
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)
编辑 - 替代CFC方法
<cffunction name="testFunction" access="remote">
<cfquery name="testQuery" datasource="x">
Select ID, NAME
From Table
Where ID = '#url.ID#'
</cfquery>
<cfset response = [] />
<cfoutput query="testQuery">
<cfset obj = {
"ID" = ID,
"NAME" = NAME
} />
<cfset arrayAppend(response, obj) /> …Run Code Online (Sandbox Code Playgroud) 我在几个不同的网站上读过这个问题,但我仍然不明白这个解决方案.据我所知,SQL将优化函数中的查询,有时会忽略Order By子句.你怎么能对结果进行排序?
如何在一个像这样的简单表值函数中对结果进行排序?
Create function [dbo].fTest
--Input Parameters
(@competitionID int)
--Returns a table
RETURNS @table TABLE (CompetitionID int )
as
BEGIN
Insert Into @table (CompetitionID)
select CompetitionID from Competition order by CompetitionID desc
RETURN
END
Run Code Online (Sandbox Code Playgroud)
UPDATE
我发现插入一个主键身份字段似乎有所帮助(如答案中提到的马丁史密斯).这是一个好的解决方案吗?
--Returns a table
RETURNS @table TABLE
(
SortID int IDENTITY(1,1) PRIMARY KEY,
CompetitionID int
)
Run Code Online (Sandbox Code Playgroud)
在下面参考Martin的答案时,在我的情况下,在select语句之外进行排序并不容易.我发布的示例是一个精简版本,但我的现实生活中的问题涉及一个更复杂的自定义排序的case by子句.除此之外,我在一个带有LINQ查询的MVC控制器中调用此函数,这意味着必须将自定义排序添加到LINQ查询中.在这一点上,这超出了我的能力范围.
如果添加身份字段是一个安全的解决方案,我很高兴能够这样做.它简单易行.
我有一个使用 JQuery DataTables 的应用程序。我希望为每个用户显示这些表,但只允许特定角色的用户使用单击功能。
所以,我可以用这个在控制器上设置授权......
[Authorize(Roles = "Admin")]
Run Code Online (Sandbox Code Playgroud)
这还不够,因为仍然会调用这个控制器和方法,并为那些不在“管理员”角色中的人重定向。
假设我的 javascript 中有一个像这样的函数......
//Click event on the table row
$('#table1').on('click', 'tr', function (event) {
//Post the data to the controller
$.ajax({
type: "POST",
url: "/Controller/Action",
data: {someData : someData},
success: function () {
//do something
}
});
});
Run Code Online (Sandbox Code Playgroud)
我想围绕这个点击事件包装一些东西......
if (role == "Admin") { //click event in here }
Run Code Online (Sandbox Code Playgroud)
现在,我知道角色在服务器端,而 javascript 在客户端。
我看到了一些关于使用 razor 语法将某些内容输出到隐藏列然后使用 javascript 获取该值的建议。像这样的东西...
@if (User.IsInRole("Admin"))
{
<input type="hidden" id="isAdmin" value="true">
}
Run Code Online (Sandbox Code Playgroud)
但是,这并不是真正安全的,因为仍然可以访问隐藏字段。我可以用什么正确的方式使用这些身份角色来处理我的 javascript?
我遇到了问题,我相信我已将其范围缩小到 DataTables Responsive 插件。 看这里
所以在 Bootstrap 中,我有两列,每列六列。左边是一个 DataTable,右边是一个 div 框。当浏览器缩小范围时,这两个项目应该分成自己的行,彼此堆叠在一起,项目居中。但是,在该断点处,DataTable 不会调整大小以在屏幕上居中。它保持在左侧。如果您以该宽度刷新页面,它将很好地居中,它只是不响应断点。
如果您执行相反的操作并以手机大小开始页面并将窗口展开,则数据表将保持在左侧的细列中。
如果我取出响应式插件,它会在断点处很好地居中。但是,我想使用这个插件来帮助处理手机大小的表格。
下面是该行的示例。
<div class="row">
<div class="col-md-6">
<table id="table1" class="table">
<thead>
<tr>
<th>data</th>
<th>data</th>
<th>data</th>
<th>data</th>
</tr>
</thead>
<tbody>
<tr>
<td>data</td>
<td>data</td>
<td>data</td>
<td>data</td>
</tr>
</tbody>
</table>
</div>
<div class="col-md-6">
<div class="box">
</div>
</div>
</div><!--End Row-->
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的CSS
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<link href="//cdn.datatables.net/1.10.8/css/dataTables.dataTables.min.css" rel="stylesheet"/>
<link href="//cdn.datatables.net/responsive/1.0.7/css/responsive.dataTables.min.css" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的js
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="//cdn.datatables.net/1.10.8/js/jquery.dataTables.min.js"></script>
<script src="//cdn.datatables.net/responsive/1.0.7/js/dataTables.responsive.min.js"></script>
Run Code Online (Sandbox Code Playgroud) 我在视图中输出DayOfWeek.它将显示为"星期五",我想将其显示为"星期五".我怎样才能做到这一点?
@item.StartDate.DayOfWeek
Run Code Online (Sandbox Code Playgroud)
跟进
谢谢你的简单回答.这是一个跟进.如果我要在同一个StartDate字段中分别显示DayOfWeek,Date和Month,那么在我的视图模型中更好地做到这一点,还是在使用Razor的视图中更好?
我正在尝试在MVC应用程序中使用存储库模式和EntityFramework来更新记录,但db.SaveChanges()方法没有保存到数据库.我没有收到任何错误,我可以单步执行代码,看到正确的变量传递,以及记录变量,更新.
根据我一直在阅读的内容,我认为我的问题是我有两个数据库上下文实例(MyDBEntities).问题可能是我创建MyDBEntities实例的ReadRepository被注入到WriteRepository中,WriteRepository也创建了一个实例MyDBEntities.我不确定如何将实体注入存储库(假设这是我需要做的).
如果我尝试添加像db.MyTable.Attach(record);以前一样的东西db.SaveChanges(),我会在下面得到这个错误,这让我觉得我需要注入MyDBEntities().
An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
CONTROLLER
public class MyController : Controller
{
private IWriteRepository _writeRepository;
public MyController(IWriteRepository writeRepository)
{
_writeRepository = writeRepository;
}
[HttpPost]
public ActionResult MyPostMethod(MyViewModel model)
{
try
{
//Send to the repository to edit a record
writeRepository.EditRecord(model);
return new HttpStatusCodeResult(HttpStatusCode.OK);
}
catch
{
throw new HttpException(500, "Internal Server Error");
}
}
}
Run Code Online (Sandbox Code Playgroud)
写储存
//The ReadRepository is injected into the WriteRepository to grab …Run Code Online (Sandbox Code Playgroud) asp.net-mvc entity-framework dependency-injection repository-pattern
asp.net-mvc ×5
c# ×5
jquery ×4
asp.net ×2
datatables ×2
javascript ×2
web-config ×2
ajax ×1
asp.net-core ×1
cfc ×1
coldfusion ×1
css ×1
json ×1
linq ×1
razor ×1
sql ×1
sql-server ×1
viewmodel ×1