2012-07-26 8 views
5

का मूल्य RowDataBound घटना पर एक GridView में परिवर्तित करने के लिए मैं एक GridView है:कैसे एक eval() क्षेत्र

<asp:GridView ID="gvDownloads"> 
    <Columns> 
     <asp:TemplateField HeaderText="Status" > 
     <ItemTemplate> 
      <%# Eval("Enabled")%> 
     </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
<asp:GridView/> 

Enabled संपत्ति एक बूलियन है। अब मैं Enabled संपत्ति के सही/गलत पर आधारित सक्षम/अक्षम प्रदर्शित करना चाहता हूं। इसलिए मैं का उपयोग करें:

Sub gvDownloads_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles gvDownloads.RowDataBound 

     If e.Row.RowType = DataControlRowType.DataRow Then 

      If e.Row.Cells(3).Text = "True" Then 
       e.Row.Cells(3).Text = "Enabled" 
      Else 
       e.Row.Cells(3).Text = "Disabled" 
      End If 

     End If 

End Sub 

लेकिन यह काम नहीं करता है के बाद से जब घटना शुरू की है e.Row.Cells(3).Text एक रिक्त स्ट्रिंग है। इस समस्या का समाधान किस प्रकार से किया जा सकता है? धन्यवाद

+0

इसे रिक्त स्ट्रिंग है क्योंकि यह डेटाबेस में 'NULL' है है? – mellamokb

+0

इसे 1 के साथ तुलना करें? –

+0

मुझे लगता है कि यह खाली है क्योंकि यह अभी तक बाध्य नहीं है ... – CiccioMiami

उत्तर

4
If e.Row.Cells(3).Text <> Boolean.FalseString Then 
     e.Row.Cells(3).Text = "Enabled" 
Else 
     e.Row.Cells(3).Text = "Disabled" 
End If 
2

मेरे साथ समान समस्या।

e.Row.Cells[i].Text खाली था। मुझे लगता है कि डेटा उस समय बाध्य नहीं है जो किसी भी तरह अजीब है क्योंकि हम RowDataBound ईवेंट में हैं।

हालांकि, मैं प्रयोग किया है:

 DataRowView drv = (DataRowView) e.Row.DataItem; 
    if (drv["RNID"].ToString() == "") 
    { 
     e.Row.Visible = false; 
    } 

जहां "RNID" अपने आवेदन में स्तंभ नाम से एक है। यह मेरी समस्या हल हो गई।