Image 显示图像而不是URL
我已经开发了一个ASP.NET MVC应用程序,使用signalr在页面上显示记录。 我的表有五列(jobid[int]、name[varchar]、lastexecutiondate[datetime]、status[int]、imageurl[string]) 以下是我在查看页面中的标记:Image 显示图像而不是URL,image,url,asp.net-mvc-4,Image,Url,Asp.net Mvc 4,我已经开发了一个ASP.NET MVC应用程序,使用signalr在页面上显示记录。 我的表有五列(jobid[int]、name[varchar]、lastexecutiondate[datetime]、status[int]、imageurl[string]) 以下是我在查看页面中的标记: <script type="text/javascript"> $(function () { // Proxy created on the fly
<script type="text/javascript">
$(function () {
// Proxy created on the fly
var job = $.connection.jobHub;
// Declare a function on the job hub so the server can invoke it
job.client.displayStatus = function () {
getData();
};
// Start the connection
$.connection.hub.start();
getData();
});
function getData() {
var $tbl = $('#tblJobInfo');
$.ajax({
url: '../api/values',
type: 'GET',
datatype: 'json',
success: function (data) {
if (data.length > 0) {
$tbl.empty();
$tbl.append(' <tr><th>ID</th><th>Name</th><th>Last Executed Date</th><th>Status</th><th>Image URL</th></tr>');
var rows = [];
for (var i = 0; i < data.length; i++) {
rows.push(' <tr><td>' + data[i].JobID + '</td><td>' + data[i].Name + '</td><td>' + data[i].LastExecutionDate.toString().substr(0, 10) + '</td><td>' + data[i].Status + '</td><td>' + data[i].imageurl + '</td></tr>');
}
$tbl.append(rows.join(''));
}
}
});
}
</script>
</head>
<body>
<div>
<table id="tblJobInfo" style="text-align:center;margin-left:10px">
</table>
</div>
</body>
$(函数(){
//动态创建的代理
var job=$.connection.jobHub;
//在作业中心上声明一个函数,以便服务器可以调用它
job.client.displayStatus=函数(){
getData();
};
//启动连接
$.connection.hub.start();
getData();
});
函数getData(){
变量$tbl=$(“#tblJobInfo”);
$.ajax({
url:“../api/values”,
键入:“GET”,
数据类型:“json”,
成功:功能(数据){
如果(data.length>0){
$tbl.empty();
$tbl.append('IDNameLast Executed DateStatusImage URL');
var行=[];
对于(变量i=0;i
下面是我从数据库中获取数据的代码
SqlDependency.Start(connection.ConnectionString);
using (var reader = command.ExecuteReader())
return reader.Cast<IDataRecord>()
.Select(x => new JobInfo()
{
JobID = x.GetInt32(0),
Name = x.GetString(1),
LastExecutionDate = x.GetDateTime(2),
Status = x.GetString(3),
imageurl = x.GetString(4)
}).ToList();
SqlDependency.Start(connection.ConnectionString);
使用(var reader=command.ExecuteReader())
return reader.Cast()
.Select(x=>newjobinfo()
{
JobID=x.GetInt32(0),
Name=x.GetString(1),
LastExecutionDate=x.GetDateTime(2),
Status=x.GetString(3),
imageurl=x.GetString(4)
}).ToList();
我想显示图像而不是URL。您只需在JavaScript表行函数中创建一个图像标记:
for (var i = 0; i < data.length; i++) {
rows.push(' <tr><td>' + data[i].JobID + '</td><td>' + data[i].Name + '</td><td>' + data[i].LastExecutionDate.toString().substr(0, 10) + '</td><td>' + data[i].Status + '</td><td><img src="' + data[i].imageurl + '"/></td></tr>');
}
for(变量i=0;i
我可以想出几种方法来回应你下面的评论。在代码中,创建一个帮助器函数来为您执行此操作:
SqlDependency.Start(connection.ConnectionString);
using (var reader = command.ExecuteReader())
return reader.Cast<IDataRecord>()
.Select(x => new JobInfo()
{
JobID = x.GetInt32(0),
Name = x.GetString(1),
LastExecutionDate = x.GetDateTime(2),
Status = x.GetString(3),
imageurl = GetImageUrl(x.GetString(3))
}).ToList();
private string GetImageUrl(int status){
switch(status){
case 1:
return "some.jpg"
case 2:
return "someother.jpg"
default:
return "blank.jpg"
}
}
SqlDependency.Start(connection.ConnectionString);
使用(var reader=command.ExecuteReader())
return reader.Cast()
.Select(x=>newjobinfo()
{
JobID=x.GetInt32(0),
Name=x.GetString(1),
LastExecutionDate=x.GetDateTime(2),
Status=x.GetString(3),
imageurl=GetImageUrl(x.GetString(3))
}).ToList();
私有字符串GetImageUrl(int状态){
开关(状态){
案例1:
返回“some.jpg”
案例2:
返回“someother.jpg”
违约:
返回“blank.jpg”
}
}
我不太了解您的代码,因此这假设您的select没有被强制转换为SQL语句(看起来不是这样)
要在客户端执行相同的操作,您需要将GetImageUrl函数实现为JavaScript函数,并将其应用于相同类型的操作
for (var i = 0; i < data.length; i++) {
rows.push(' <tr><td>' + data[i].JobID + '</td><td>' + data[i].Name + '</td><td>' + data[i].LastExecutionDate.toString().substr(0, 10) + '</td><td>' + data[i].Status + '</td><td><img src="' + GetImageUrl(data[i].Status) + '"/></td></tr>');
}
function GetImageUrl(status){
switch(status){
case 1:
return "some.jpg"
case 2:
return "someother.jpg"
default:
return "blank.jpg"
}
}
for(变量i=0;i
+1为我工作。。为了便于学习,您可以建议我如何在运行时生成url。例:如果status=1,那么URL=“some.jpg”如果status=2,那么URL=“someother.jpg”else“blank.jpg”当然,我在答案中为你写了一些想法。PS-我的JS开关实现语法不是100%在我的头上你太棒了。我已经实现了这一点,它工作得非常好。谢谢你帮我:)