【问题标题】:combining between scripts脚本之间的组合
【发布时间】:2011-11-05 16:36:05
【问题描述】:
DriverId      OrderCount      OrderCountWhereNameIsNotNull
12               2                         2
13               1                         1

这是此代码正在创建的当前表:

 public partial class Control : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
    {
        OrderDataRepository rep = new OrderDataRepository();

        var results = rep.GetAllOrderData().
                      GroupBy(o => o.DRIVER_ID).
                      Select(g =>
                                new
                                {
                                    DriverId = g.Key,
                                    OrderCount = g.Count(),
                                    OrderCountWhereNameIsNotNull = 
                                                      g.Count(o => o.RECEIVE_NAME != null)
                                }).ToList();

        DataViewer.DataSource = results;
        DataViewer.DataBind();
    }

    }

我需要为每个 DriverId 获取并打印一个进度条,而不是表格,如此脚本中所示:

  int OrderCount, OrderCountWhereNameIsNotNull;
System.Web.UI.WebControls.TableRow oRow;
System.Web.UI.WebControls.TableCell oCell;
System.Web.UI.HtmlControls.HtmlGenericControl oDiv;

while (true)
//loop through records
//do while not eof
{
    oRow = new System.Web.UI.WebControls.TableRow();
    oCell = new System.Web.UI.WebControls.TableCell();
    oDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
    OrderCount = 200; //get value from DB, convert to meaningful width
    OrderCountWhereNameIsNotNull = 100; //get value from DB, convert to meaningful width

    oDiv.InnerHtml = "<div style='border: 3px solid black; width: " + OrderCount + "px;'>";
    oDiv.InnerHtml += Environment.NewLine + "  <div style='border: 0px; background-color: red; width: " + OrderCountWhereNameIsNotNull + "px;'>&nbsp;</div>";
    oDiv.InnerHtml += Environment.NewLine + "</div>";
    oCell.Controls.Add(oDiv);
    oRow.Cells.Add(oCell);
    tblData.Rows.Add(oRow);
}

我无法合并它们,可能是脚本不好...请帮助

目前我的主页是:

<form id="Form1" runat="server">
        <asp:GridView runat="server" ID="DataViewer">
        </asp:GridView>
    </form>

【问题讨论】:

  • 如何将 TemplateColumn 添加到您的网格中,其中包含 ProgressBar?
  • 我需要使用我的代码或其他代码,因为这不是进度条 - 它必须显示每个驱动程序有多少任务以及他已经完成了多少......所以你能帮我吗将我的脚本连接到代码或帮助我使用其他代码?

标签: c# asp.net linq entity-framework linq-to-entities


【解决方案1】:

您可能会发现将网格绑定到数据集比构建一个尝试将自身注入网格的表更简单:

<asp:GridView ID="DataViewer" runat="server">
    <Columns>
        <TemplateColumn>
            <ItemTemplate>
Put the code for rendering your progress bar here in pure HTML. 
When you come to a value that will come from a row in your data, do like this:
<div style='width: <%# Eval("OrderCount") %>' />
            </ItemTemplate>
        </TemplateColumn>
    </Columns>
</asp:GridView>

【讨论】:

  • 你知道如何使用 wntity 框架我可以设置我的 而不是 asp:GridView>
  • ...实体框架与您的 UI 上的控件有什么关系? "OrderCount" 将是您数据源中包含您的数据的列。
  • 如何将 设置为 OrderCount 从我粘贴的代码 where OrderCount = g.Count()
  • 我在使用您的代码时出现错误:解析器错误描述:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息并适当地修改您的源文件。解析器错误消息:System.Web.UI.WebControls.DataControlFieldCollection 必须具有“System.Web.UI.WebControls.DataControlField”类型的项目。 “TemplateColumn”的类型为“System.Web.UI.HtmlControls.HtmlGenericControl
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多