GVKun编程网logo

MVC 4 Webgrid – 使用css样式的列宽设置不起作用(css列宽怎么设置)

11

最近很多小伙伴都在问MVC4Webgrid–使用css样式的列宽设置不起作用和css列宽怎么设置这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展asp.net–MVC4如何为Web

最近很多小伙伴都在问MVC 4 Webgrid – 使用css样式的列宽设置不起作用css列宽怎么设置这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展asp.net – MVC 4如何为WebGrid设置行ID、asp.net-mvc – MVC 3 Webgrid – 你如何隐藏不想显示的列?、asp.net-mvc – MVC 3 Webgrid专栏、asp.net-mvc – MVC WebGrid设置呈现的ID等相关知识,下面开始了哦!

本文目录一览:

MVC 4 Webgrid – 使用css样式的列宽设置不起作用(css列宽怎么设置)

MVC 4 Webgrid – 使用css样式的列宽设置不起作用(css列宽怎么设置)

我正在尝试为Webgrid列设置宽度.但它没有用.
有人帮我请.

请在下面找到我的代码

@grid.GetHtml(
tableStyle: "webgrid-table",headerStyle: "webgrid-header",alternatingRowStyle: "webgrid-alternating-row",mode: WebGridPagerModes.All,columns:grid.Columns(
grid.Column(columnName:"ID",header: "ID",canSort:true,style: "id"),grid.Column(columnName:"Name",header: "Name",style: "name")
)

和我的CSS文件

.webgrid-table { border: 1px solid #98BF21;   }
.webgrid-header { background-color: #A7C942; color: #FFFFFF; text-align: left;}
.webgrid-alternating-row { background-color: #EAF2D3; }
.id { width: 20px; }
.name { width: 40px; }

有人帮我吗?

解决方法

您需要指定WebGrid本身的宽度才能解决此问题.

加上这个

.webgrid-table { *width*: *specify the width value here* ;border: 1px solid #98BF21;}

asp.net – MVC 4如何为WebGrid设置行ID

asp.net – MVC 4如何为WebGrid设置行ID

在部分Razor视图中,我有这样的:

@model IList<Stratent.ScanCloud.Shared.DeliveryOrderLineDto>

    <div id="gridDiv">
@{

    var grid = new  WebGrid(Model,defaultSort: "Date",selectionFieldName: "SelectedRow",`enter code here`     fieldNamePrefix: "gridItem",ajaxUpdateContainerId: "grid");

}

  @if (Model.Count > 0)
  {
      @grid.GetHtml(

          tableStyle: "grid",alternatingRowStyle: "gridrow_alternate",//format:@<tr id= '@item.OrderId'> </tr>,selectedRowStyle: "highlight",rowStyle: "gridrow",htmlAttributes: new {id = "grid"},columns: grid.Columns(
              grid.Column("OrderId",header: "OrderId " + Html.sortDirection(ref grid,"Client"),style: "width:9%"),grid.Column("Client",header: "Client " + Html.sortDirection(ref grid,grid.Column("Date",header: "Date " + Html.sortDirection(ref grid,"Date"),grid.Column("Time",header: "Time " + Html.sortDirection(ref grid,"Time"),grid.Column("Reference",header: "Reference " + Html.sortDirection(ref grid,"Reference"),grid.Column("Order",header: "Order " + Html.sortDirection(ref grid,"Order"),style: "width:15%"),grid.Column("Customer",header: "Customer " + Html.sortDirection(ref grid,"Customer"),grid.Column("Street",header: "Street " + Html.sortDirection(ref grid,"Street"),grid.Column("Number",header: "No " + Html.sortDirection(ref grid,"Number"),grid.Column("Town",header: "Town " + Html.sortDirection(ref grid,"Town"),grid.Column("Crs",header: "Crs " + Html.sortDirection(ref grid,"Crs"),grid.Column("Document",header: "Document " + Html.sortDirection(ref grid,"Document"),style: "width:15%")
              )


           )
  }

 @if(Model.Count == 0)
    {
        <p>There are no OrderLines available.</p>
    }

</div>

在我打电话的主页面中

<%Html.RenderPartial("_orderLinesList",Model.Items); %>

然后我用它来将orderId传递给控制器​​:

<script type="text/javascript">
     $(function () {
        $("tbody tr").click(function () {
            var url = '<%=Url.Action("SelectOrderLine","DeliveryOrderLines",new {id = "__id__"}) %>';
            url = url.replace('__id__',$(this).attr('id'));
            location.href = url;
        })
        .hover(function () { $(this).addClass('highlight'); },function () { $(this).removeClass('highlight'); });
    });

</script>

在我的Controller的ActionResult中

public ActionResult SelectOrderLine(int id)
    {
        return RedirectToAction("Index","DeliveryOrderLine",new {id = id});
    }

我没有收到任何身份证明.

在渲染的HTML代码中,我看到没有任何Id可以从Controller中的ActionResult中发送.

网格行不包含任何按钮,如编辑,删除…这不是预期的.

我想为每一行定义一个id,并在选择一行时使用该id,然后从我的Controller中将id发送到ActionResult方法.

你能告诉我如何解决这个问题吗?

谢谢.

解决方法

设置网格时,可以指定每列的格式:

grid.Column("InvoiceID",header: "Invoice",format: @<text>@Html.ActionLink((string)item.InvoiceID.ToString(),"Invoice",new { invoiceID = item.InvoiceID },null)</text>),

这将生成带有ID的相应链接以传递回控制器.

asp.net-mvc – MVC 3 Webgrid – 你如何隐藏不想显示的列?

asp.net-mvc – MVC 3 Webgrid – 你如何隐藏不想显示的列?

我有一个webgrid,有一个列我想要只有某些用户可见.
目前我已经编码了网格如下
if (Context.User.IsInRole(Role.Inputter) || Context.User.IsInRole(Role.Administrator))
{
    @grid.GetHtml(columns: grid.Columns(
        grid.Column(format: (item) => Html.ActionLink("Select","Details",new { contractId = item.ContractId })),grid.Column(format: (item) => Html.ActionLink("Edit","Edit",grid.Column("SignOffDate","Sign Off Date",format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>),grid.Column("FullContractNumber","Contract Number"),grid.Column("ContractTitle","Title")
    ));
}
else
{ 
    @grid.GetHtml(columns: grid.Columns(
        grid.Column(format: (item) => Html.ActionLink("Select","Title")
    ));
}

但是肯定有一个更好的方法,不重复所有的代码?
2列输入之间的唯一区别是我想显示特定用户的编辑链接.那么最好的替代方法是什么呢?

解决方法

尝试这样(未经测试,目前无法访问VS):
@{
    var gridColumns = new List<WebGridColumn>();
    gridColumns.Add(grid.Column(format: (item) => Html.ActionLink("Select",new { contractId = item.ContractId })));
    if (Context.User.IsInRole(Role.Inputter) || Context.User.IsInRole(Role.Administrator))
    {
        gridColumns.Add(grid.Column(format: (item) => Html.ActionLink("Edit",new { contractId = item.ContractId })));
    }
    gridColumns.Add(grid.Column("SignOffDate",format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>));
    gridColumns.Add(grid.Column("FullContractNumber","Contract Number"));
    gridColumns.Add(grid.Column("ContractTitle","Title"));
}

@grid.GetHtml(columns: grid.Columns(gridColumns.ToArray()));

asp.net-mvc – MVC 3 Webgrid专栏

asp.net-mvc – MVC 3 Webgrid专栏

我正在开发一个MVC 3 webgrid,在我希望有一个按钮的一个列中,我已经在视图中放入以下代码时实现了这一点.

@grid.GetHtml(columns:
            grid.Columns(
            grid.Column("ID","id",canSort: true),grid.Column("Surname","surname",grid.Column("Forenames","forename",grid.Column(format: @<input type="button" value="View"/>)),headerStyle: "header",alternatingRowStyle: "alt",htmlAttributes: new { id = "DataTable" }
            )

但是我希望创建网格服务器端以进行分页,但是当我将下面的代码放在操作中时,我得到了按钮列的错误.

var htmlString = grid.GetHtml(tableStyle: "webGrid",htmlAttributes: new { id = "DataTable" },columns: grid.Columns(
                                                grid.Column("ID",grid.Column(format: @<input type='button' value='View'/>)                                                                          
                                           ));

第一个错误是“在逐字说明符后预期的关键字,标识符或字符串:@”.

我在按钮列上使用了不正确的格式吗?

解决方法

您似乎正在尝试在代码隐藏中使用Razor语法.尝试这样的事情,使用lambda表达式……

gridColumn.Format = (item) =>
{
    return new HtmlString("<input type='button' value='View'/>");
}

asp.net-mvc – MVC WebGrid设置呈现的ID

asp.net-mvc – MVC WebGrid设置呈现的ID

使用MVC 3中的WebGrid如何在渲染时指定控件的名称,即渲染时表的id?

var someGrid = new WebGrid(source: Model.Users,defaultSort: "Name",rowsPerPage: 50);

在呈现为表格的那一刻,它显示为

<table>

没有id设置,我想使用jQuery id选择器访问此表但不能.任何帮助赞赏.

我想要的是< table id =“someIDWhichIset”>

谢谢
尼尔

解决方法

当你渲染你的桌子时,你给它的id. @ someGrid.GetHtml(htmlAttributes:new {id =“someIDWhichIset”},列:….

今天关于MVC 4 Webgrid – 使用css样式的列宽设置不起作用css列宽怎么设置的分享就到这里,希望大家有所收获,若想了解更多关于asp.net – MVC 4如何为WebGrid设置行ID、asp.net-mvc – MVC 3 Webgrid – 你如何隐藏不想显示的列?、asp.net-mvc – MVC 3 Webgrid专栏、asp.net-mvc – MVC WebGrid设置呈现的ID等相关知识,可以在本站进行查询。

本文标签: