Asp.net 如何动态获取WebGrid列名
我有一个表,它有几个固定的列,然后有很多动态的列,这取决于pivot的结果 所以这很好:Asp.net 如何动态获取WebGrid列名,asp.net,webgrid,dynamic-columns,Asp.net,Webgrid,Dynamic Columns,我有一个表,它有几个固定的列,然后有很多动态的列,这取决于pivot的结果 所以这很好: @{ var db = Database.Open("STUDENT"); var TeacherID = 15313; var selectCommand = "PBIS_ReviewBehaviors @0, @1"; var selectedData0 = db.Query(selectCommand, TeacherID, 0); var grid0
@{
var db = Database.Open("STUDENT");
var TeacherID = 15313;
var selectCommand = "PBIS_ReviewBehaviors @0, @1";
var selectedData0 = db.Query(selectCommand, TeacherID, 0);
var grid0 = new WebGrid(source: selectedData0, rowsPerPage: 30);
List<WebGridColumn> cols0 = new List<WebGridColumn>();
}
@{
var db=Database.Open(“学生”);
var-TeacherID=15313;
var selectCommand=“PBIS\u ReviewBehaviors@0,@1”;
var selecteddata=db.Query(selectCommand,TeacherID,0);
var grid0=新的WebGrid(来源:selectedData0,行页面:30);
List cols0=新列表();
}
然后是身体:
<div>
@grid0.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt"// ,
// columns: cols
)
</div>
@grid0.GetHtml(
表样式:“网格”,
头型:“头”,
交替行样式:“alt”//,
//列:cols
)
但是,我真的希望能够对我的一些固定列执行一些特殊操作-为了做到这一点,我需要知道谁可以在Data0或Grid0中获取列名,这样我就可以建立一个名为cols的列表并使用它:
差不多
foreach (column name in my grid)
{
if column name = "StudentID"
cols0.Add(grid0.column( format: @<a href="~/InsertStudent?StudentID=@item.StudentID">Details</a> );
else
cols0.Add(grid0.column( the column name );
}
foreach(我的网格中的列名)
{
如果column name=“StudentID”
cols0.Add(grid0.column,格式:@);
其他的
cols0.Add(grid0.column)(列名);
}
唉,我对.net非常陌生,不知道如何获得列名列表,然后具体使用它们。我希望我的意图足够清楚地说明伪代码。您可以通过该方法获得数据库查询返回的列 谢谢大家! 可行的解决办法是:
try
{
foreach(var i in selectedData0.First().GetDynamicMemberNames() )
{
if(i == "StudentID") {
cols0.Add(grid0.Column(format: @<a href="~/DetailStudent?StudentID=@item.StudentID">Details</a>) );
}
else {
cols0.Add(grid0.Column(i.ToString()) );
}
}
}
catch {}
试试看
{
foreach(selectedData0.First().GetDynamicMemberNames()中的变量i)
{
如果(i==“学生ID”){
cols0.Add(grid0.Column(格式:@));
}
否则{
cols0.Add(grid0.Column(i.ToString());
}
}
}
捕获{}
这将我的第一列替换为指向另一页的链接,并将其余列保持为返回内容的动态。因为可能没有返回行,我将其放入try/catch中。而不是
try-catch
,您可以测试null:如果(selectedData0.FirstOrDefault()!=null)
try
{
foreach(var i in selectedData0.First().GetDynamicMemberNames() )
{
if(i == "StudentID") {
cols0.Add(grid0.Column(format: @<a href="~/DetailStudent?StudentID=@item.StudentID">Details</a>) );
}
else {
cols0.Add(grid0.Column(i.ToString()) );
}
}
}
catch {}