2012-01-22 42 views
5

पर डिफ़ॉल्ट सॉर्टिंग तीर जोड़ना मैं Asp.net के लिए नया हूं और मैं वर्तमान में ग्रिड व्यू के साथ काम कर रहा हूं। मैंने इस साइट के चारों ओर देखा है और अन्य ने कॉलम हेडर को सॉर्टिंग तीर जोड़ने के लिए युक्तियां देखी हैं।ग्रिड व्यू

सेट इन GridView गुण:

अब तक मैं इस किया है

SortedAscendingHeaderStyle-CssClass="sortasc" 
SortedDescendingHeaderStyle-CssClass="sortdesc" 

और मेरे सीएसएस इस है:

th.sortasc a 
{ 
    display:block; padding:0 4px 0 15px; 
    background:url("images/icons/ascArrow.png") no-repeat; 
} 

th.sortdesc a 
{ 
    display:block; padding:0 4px 0 15px; 
    background:url("images/icons/descArrow.png") no-repeat; 
} 

इस के बाद एक छवि दिखाने के लिए अच्छा काम करता है उपयोगकर्ता एक शीर्षलेख और कॉलम प्रकार पर क्लिक करता है।

मेरे पास अब जो समस्या है, वह यह है कि मैं कॉलम डिफ़ॉल्ट रूप से छवियां दिखाना चाहता हूं ताकि उपयोगकर्ता जान सकें कि वे क्रमबद्ध करने के लिए उन्हें क्लिक कर सकते हैं। क्या इसको मदद देने का कोई तरीका है?

उत्तर

10

आप इस तरह RowCreated घटना कुछ में एक gridview स्तंभ के व्यवहार छँटाई के लिए तीर दिखा सकते हैं मैं आमतौर पर यह इस तरह से

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.Header) 
    { 
     foreach (TableCell tc in e.Row.Cells) 
     { 
      if (tc.HasControls()) 
      { 
       // search for the header link 
       LinkButton lnk = (LinkButton)tc.Controls[0]; 
       if (lnk != null && GridView1.SortExpression == lnk.CommandArgument) 
       { 
        // inizialize a new image 
        System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image(); 
        // setting the dynamically URL of the image 
        img.ImageUrl = "~/img/ico_" + (GridView1.SortDirection == SortDirection.Ascending ? "asc" : "desc") + ".gif"; 
        // adding a space and the image to the header link 
        tc.Controls.Add(new LiteralControl(" ")); 
        tc.Controls.Add(img); 

       } 
      } 
     } 
    } 
} 

यह भी आरोही और स्तंभ

की तरह आदेश उतरते पर छवि टॉगल करना

क्या कोड वास्तव में इसे एक LinkButton(फ्रेमवर्क यह बनाता है ही अगर SortExpression गुण सेट किया जाता है) खोज करने के लिए GridView हैडर के माध्यम से लूप है। तो फिर, अगर पाया LinkButton क्रमबद्ध क्षेत्र है, तो यह उत्पादन करने के लिए छवि से पता चलता है कि सभी

AnswerSource

+0

आप वास्तव में अगर बयान में img का आरंभीकरण चला जाता, और बयानों अगर गठबंधन है। 'अगर (lnk! = null && GridView1.SortExpression == lnk.CommandArgument) {...' – Patrick

+1

@ पैट्रिक – Devjosh

+0

सुधार के सुझाव के लिए संपादन और धन्यवाद देखें धन्यवाद मदद के लिए बहुत कुछ! मैं इसे आज़माउंगा। मेरे पास कुछ प्रश्न हैं हालांकि: क्या इसके कुछ हिस्सों में मुझे सी # के बजाय वीबी के लिए बदलना होगा? इसके अलावा, मैंने अभी तक नियंत्रण के लिए घटनाओं के साथ काम नहीं किया है, मैं इसके लिए काफी नया हूं। ग्रिडव्यू की पंक्तिबद्ध घटना को संपादित करने के लिए कहां जाना है, इसकी कोई युक्तियां? – Cineno

संबंधित मुद्दे