在Web应用程序中,我将数据绑定到GridView
。在GridView
中,一些数据正在重复。我想不要一次又一次地显示数据。
例如,Empid在同一列中显示多次。我想不再在该列中显示empid。
答案 0 :(得分:0)
如果按照您希望重复的列对数据进行分组,然后将其绑定到数据源,则可以将事件绑定到RowDataBound,并检查当前值是否等于之前的值,然后隐藏单元格。
检查this以获取示例。
答案 1 :(得分:0)
您可以为正在使用的特定列实施OnDataBinding
事件。我从不使用AutoGenerateColumns
,因此对每个单元格进行精确控制非常简单。
例如:
// Create global in your .cs file
string _currentEmpID = string.Empty;
将列定义为:
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Literal ID="ltEmpID" runat="server"
OnDataBinding="ltEmpID_DataBinding" />
</ItemTemplate>
</asp:TemplateField>
<!-- Your other columns... -->
</Columns>
然后只需实施您的DataBinding
活动:
protected void ltEmpID_DataBinding(object sender, System.EventArgs e)
{
Literal lt = (Literal)(sender);
string empID = Eval("EmpID").ToString();
if (!empID.Equals(_currentEmpID))
{
lt.Text = empID;
_currentEmpID = empID;
}
else
{
lt.Text = string.Empty;
}
}
RowDataBound
强制您搜索控件,如果将来需要更改,您可能会破坏事件中正在修改的其他内容。因此,我倾向于尽可能使用控件的DataBinding
事件,因为它只将功能本地化为控件,并使您可以轻松地更换控件和功能,而不必担心影响其他事情。
答案 2 :(得分:0)
只需在gridview中添加属性AutoGenerateColumns,并为其赋值false。
AutoGenerateColumns="false"