在Web應用程序中,我將數據綁定到GridView
。在GridView
一些數據正在重複。我不想一次又一次地顯示數據。如何避免在GridiVew中重複數據?
例如,Empid在同一列中顯示多個時間。我不想在該列中再次顯示empid。
在Web應用程序中,我將數據綁定到GridView
。在GridView
一些數據正在重複。我不想一次又一次地顯示數據。如何避免在GridiVew中重複數據?
例如,Empid在同一列中顯示多個時間。我不想在該列中再次顯示empid。
您可以爲您正在使用的特定列實施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
迫使你要搜索的控制,如果改變在將來你有可能需要br消除事件中正在修改的其他事物。正因爲如此,我傾向於儘可能使用控件的DataBinding
事件,因爲它只將功能本地化爲控件,並賦予您靈活性以輕鬆更換控件和功能,而不必擔心影響其他事情。
謝謝凱爾西先生,工作很好,謝謝。 –
如果您將您的數據按不希望重複的列綁定到數據源之前進行分組,則可以將事件綁定到RowDataBound,並檢查當前值是否等於先前的值,然後隱藏單元格。
檢查this爲例。
只需在gridview中添加屬性AutoGenerateColumns併爲其賦值false即可。
AutoGenerateColumns="false"
在將您的數據發送到gridview之前,您應該真的做這個過濾/分組。您的代碼的一部分也可能與該網格的屏幕截圖很好。 – Bastardo