फ़ूटर से डेटा डालने के लिए ग्रिडव्यू में कोई डेटा नहीं होने पर फ़ूडर दिखाने के लिए ग्रिड व्यू फ़ूटर दृश्यमान बनाएं।कोई डेटा बाध्य
उत्तर
ऐसा करने का सबसे आसान तरीका एक सरणी को एक की लंबाई से बांधना है। आप इसमें कुछ भी डाल सकते हैं जिसे आप पहचानना चाहते हैं कि यह एक डमी पंक्ति है। आपके ग्रिड व्यूज़ RowDataBound विधि पर यह देखने के लिए जांचें कि क्या डेटा आइटम डमी पंक्ति है (सुनिश्चित करें कि डेटा जांचने से पहले RowType पहले DataRow है)। यदि यह डमी पंक्ति है तो पंक्तियों को झूठी दृश्यता सेट करें। पाद लेख और शीर्षलेख अब किसी भी डेटा के बिना दिखाना चाहिए।
सुनिश्चित करें कि आप ShowFooter प्रॉपर्टी को अपने ग्रिड व्यू पर सही पर सेट करें।
उदाहरण के लिए।
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostback)
{
myGrid.DataSource = new object[] {null};
myGrid.DataBind();
}
}
protected void myGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.DataItem == null)
{
e.Row.Visible = false;
}
}
}
Here is the simple way ग्रिड व्यू में खाली डेटा होने पर पाद लेख दिखाने के लिए।
यह निश्चित रूप से बुरा विचार है। – abatishchev
यहाँ कुछ आसान है कि मैं तैयार किया है:
/// <summary>
/// Ensures that the grid view will contain a footer even if no data exists.
/// </summary>
/// <typeparam name="T">Where t is equal to the type of data in the gridview.</typeparam>
/// <param name="gridView">The grid view who's footer must persist.</param>
public static void EnsureGridViewFooter<T>(GridView gridView) where T: new()
{
if (gridView == null)
throw new ArgumentNullException("gridView");
if (gridView.DataSource != null && gridView.DataSource is IEnumerable<T> && (gridView.DataSource as IEnumerable<T>).Count() > 0)
return;
// If nothing has been assigned to the grid or it generated no rows we are going to add an empty one.
var emptySource = new List<T>();
var blankItem = new T();
emptySource.Add(blankItem);
gridView.DataSource = emptySource;
// On databinding make sure the empty row is set to invisible so it hides it from display.
gridView.RowDataBound += delegate(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItem == (object)blankItem)
e.Row.Visible = false;
};
}
यह आह्वान करने के लिए आप निम्न का उपयोग कर सकते हैं:
MyGridView.DataSource = data;
EnsureGridViewFooter<MyDataType>(MyGridView);
MyGridView.DataBind();
आशा इस मदद करता है। चीयर्स!
यह काम नहीं कर रहा है जब Autogenerate कॉलम == झूठी, कोई अन्य विचार? – msbyuva
ऐसा होना चाहिए जैसा मैंने इसे कई बार किया है। क्या आपने यह सुनिश्चित किया है कि आपने पृष्ठ लोड पर कुछ बाध्य किया है? – Mike737
यह मेरे लिए काम नहीं करता क्योंकि मेरे पास ग्रिड परिभाषा में निर्दिष्ट डेटाके नाम हैं। DataKeyNames और ग्रिड को सामान्य रूप से प्रदर्शित किया जाता है जब कोई डेटा नहीं होने पर केवल पाद लेख दिखाता है। – YeeHaw1234