我希望在我的下拉列表中有2列,两列之间的特定距离,所以我添加了下面的代码,但列与我的代码不对齐。
var query = from p in _DataContext.tblDocuments
orderby p.DocumentNo
select new
{
Doctitle = p.DocumentNo+' '+' '+"|"+' '+p.TITLE,
DocId = p.DocId
};
ddlProjectDocument.DataSource = query;
ddlProjectDocument.DataValueField = "DocId";
ddlProjectDocument.DataTextField = "Doctitle";
ddlProjectDocument.DataBind();
请帮助我如何拥有2列普通视图和良好对齐。
答案 0 :(得分:0)
您可以尝试以下两种方法:
1). select new
{
Doctitle = p.DocumentNo+" "+"|"+" "+p.TITLE,
DocId = p.DocId
};
2)。
select new
{
Doctitle =Concat(p.DocumentNo,p.TITLE),
DocId = p.DocId
};
答案 1 :(得分:0)
对齐将取决于表格字段中值的长度。一种方法是获取表中最大条目的大小,并确保所有条目都是那么宽。这是你可以尝试的东西。
<asp:DropDownList ID="ddlStack" runat="server" OnLoad="ddlStack_Load" />
并在ddl load事件的源代码中:
protected void ddlStack_Load(object sender, EventArgs e)
{
var all = from o in _DataContext.tblDocuments
orderby o.DocumentNo
select o;
int maxs = 0;
foreach (tblDocuments v in all)
{
if (v.DocumentNo.Length > maxs)
maxs = v.DocumentNo.Length;
}
foreach (tblDocuments vv in all)
{
string doctitle = vv.DocumentNo;
for (int i = vv.DocumentNo.Length; i < maxs + 2; i++)
{
doctitle += '_';
}
doctitle += " | ";
doctitle += vv.DocID;
ddlStack.Items.Add(new ListItem(doctitle, vv.vendorID.ToString()));
}
}