दिलचस्प पोस्ट
जावास्क्रिप्ट – फ़ाइल इनपुट नियंत्रण से फ़ाइल नाम निकालने का तरीका पायथन सबप्रोसेक्शन। चैक बनाम चेक चेकआउट लाइब्रेरी प्रोजेक्ट मैनिफ़ेस्ट फ़ाइल मर्ज करता है? हैश असाइन करने के लिए कैसे करें = 'सी' अगर हैश मौजूद नहीं है? डायनामिक रूप से स्ट्रिंग के आधार पर PHP ऑब्जेक्ट बनाएं एंड्रॉइड "केवल एक मूल धागा जो दृश्य पदानुक्रम बनाता है, उसके विचारों को छू सकता है।" AngularJS: एक नई ब्राउज़र विंडो खोलें, फिर भी अभी तक गुंजाइश और नियंत्रक और सेवाओं को बनाए रखा है पीएल / एसक्यूएल में एक अद्यतन से प्रभावित पंक्तियों की संख्या बाहरी लाइब्रेरी को जार में रखें? क्या आप git-merge के साथ चयनात्मक फाइलों को मर्ज करते हैं? UISelectMany सूची पर <T> के कारण java.lang.ClassCastException: java.lang.String को टी में डाला नहीं जा सकता जब एक नया जीयूआई बनाते हैं, तो क्या डब्ल्यूपीएफ विंडोज फॉर्म के ऊपर पसंदीदा पसंद है? PHP में डायरेक्टरी ट्रैवर्सल को रोकना लेकिन पथ को अनुमति देना कस्टम HTML टैग विशेषता JSF द्वारा प्रदान नहीं की गई हैं कैसे मेरे पुस्तकालय से निष्पादन योग्य में फोन कॉल करने के लिए?

कॉलम (ग्रिडव्यू) को कैसे छुपाना है, लेकिन फिर भी इसका मान कैसे पहुंच सकता है?

मेरे पास एक DataSource (एसक्यूएल डाटाबेस) के साथ एक DataSource मैं एक कॉलम छिपाना चाहता हूं, लेकिन जब भी मैं रिकॉर्ड का चयन करता हूं, तब भी वह मूल्य प्राप्त करने में सक्षम होगा। क्या कोई मुझे दिखा सकता है कि यह कैसे करें?

यह वह स्तम्भ है जिसे मैं छिपाना चाहता हूं और फिर भी उसके मूल्य का उपयोग करना चाहता हूं:

 <asp:BoundField DataField="Outlook_ID" HeaderText="OutlookID" /> 

मैंने स्तंभ (संपत्ति Visible="false" ) को छिपाने के लिए सब कुछ करने की कोशिश की, लेकिन मैं इसके मूल्य तक नहीं पहुंच सकता।

Solutions Collecting From Web of "कॉलम (ग्रिडव्यू) को कैसे छुपाना है, लेकिन फिर भी इसका मान कैसे पहुंच सकता है?"

यदि मैं गलत नहीं हूँ, तो BoundColumns को BoundColumns के मानों में नहीं रखा गया है जिनके पास विशेषता visible="false" । दो चीजें जो आप यहां कर सकते हैं, एक (जैसा कि V4Vendetta के उत्तर में समझाया गया है) डेटाकाइज़ का उपयोग करने के लिए या आप अपने BoundColumn को TemplateField बदल सकते हैं। और ItemTemplate , Label तरह एक नियंत्रण जोड़ें, उसकी दृश्यता झूठी बनाओ और उस Label को अपना मूल्य दें

 <head runat="server"> <title>Accessing GridView Hidden Column value </title> <style type="text/css"> .hiddencol { display: none; } </style> <asp:BoundField HeaderText="Email ID" DataField="EmailId" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" > </asp:BoundField> ArrayList EmailList = new ArrayList(); foreach (GridViewRow itemrow in gvEmployeeDetails.Rows) { EmailList.Add(itemrow.Cells[YourIndex].Text); } 

सीएसएस में एक शैली को परिभाषित करें:

 .hiddencol { display: none; } 

फिर ग्रिड फ़ील्ड में ItemStyle-CssClass="hiddencol" और HeaderStyle-CssClass="hiddencol" विशेषता जोड़ें:

 <asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" ClientIDMode="Static" /> 

आप ऐसे क्षेत्रों के मूल्य को पुनर्प्राप्त करने के लिए BoundField उपयोग कर सकते हैं , क्योंकि (जैसा आपने कहा था) जब आप सामान्य BoundField को दृश्यमान झूठ के रूप में सेट करते हैं तो आप उनका मूल्य नहीं प्राप्त कर सकते हैं।

.aspx फ़ाइल में GridView संपत्ति सेट करें

 DataKeyNames = "Outlook_ID" 

अब, एक ईवेंट हैंडलर में आप इस कुंजी के मूल्य को इस तरह से एक्सेस कर सकते हैं:

 grid.DataKeys[rowIndex]["Outlook_ID"] 

यह आपको ग्रिड के निर्दिष्ट पंक्ति इंडेक्स में आईडी देगा।

आप यह प्रोग्राम प्रोग्राम कर सकते हैं:

 grid0.Columns[0].Visible = true; grid0.DataSource = dt; grid0.DataBind(); grid0.Columns[0].Visible = false; 

इस तरह से आप डेटाबेन्डिंग से पहले स्तंभ को दृश्यमान बनाते हैं, इसलिए कॉलम उत्पन्न होता है। आप स्तंभ को दृश्यमान नहीं करने के लिए सेट करते हैं, इसलिए इसे प्रदर्शित नहीं किया जाता है।

यदि आपके पास आपके GridView के कॉलम के अंदर एक TemplateField है और आपके पास है, तो कहें, इसे नियंत्रित करने के लिए ब्लाह नाम का नियंत्रण। फिर outlook_id को इस तरह HiddenField हुए outlook_id रूप में HiddenField :

 <asp:TemplateField HeaderText="OutlookID"> <ItemTemplate> <asp:Label ID="blah" runat="server">Existing Control</asp:Label> <asp:HiddenField ID="HiddenOutlookID" runat="server" Value='<%#Eval("Outlook_ID") %>'/> </ItemTemplate> </asp:TemplateField> 

अब, पंक्ति को उस घटना में ले outlook_id जिसे आप outlook_id चाहते हैं और फिर नियंत्रण तक पहुंच सकते हैं।
RowDataBound लिए इसे पसंद करें:

 string outlookid = ((HiddenField)e.Row.FindControl("HiddenOutlookID")).Value; 

वापस जाओ, अगर आपको क्लिक की गई पंक्ति तक पहुंचने में परेशानी होती है और उस घटना का उल्लेख करने के लिए मत भूलना जिस पर आप उस एक्सेस करना चाहते हैं।

आप सर्वर साइड पर कॉलम hidden सकते हैं और किसी कारण के लिए यह aspx कोड करने के लिए अलग है। यह अभी भी संदर्भित किया जा सकता है जैसे कि वह दिखाई दे रहा था। बस अपने OnDataBound ईवेंट में यह कोड जोड़ें।

 protected void gvSearchResults_DataBound(object sender, EventArgs e) { GridView gridView = (GridView)sender; if (gridView.HeaderRow != null && gridView.HeaderRow.Cells.Count > 0) { gridView.HeaderRow.Cells[UserIdColumnIndex].Visible = false; } foreach (GridViewRow row in gvSearchResults.Rows) { row.Cells[UserIdColumnIndex].Visible = false; } } 

GridView भरने से पहले दृश्यमान कॉलम छोड़ दें। GridView भरें और फिर कॉलम छिपाएं।

मैंने user496892 के समान एक विधि का इस्तेमाल किया:

 SPBoundField hiddenField = new SPBoundField(); hiddenField.HeaderText = "Header"; hiddenField.DataField = "DataFieldName"; grid.Columns.Add(hiddenField); grid.DataSource = myDataSource; grid.DataBind(); hiddenField.Visible = false; 

यहां एक SpecialInstructions के मूल्य को कैसे प्राप्त किया जा सकता है जो कि Visible=False सेट है: इस मामले में डेटा फ़ील्ड को जोड़ने के लिए बाध्य SpecialInstructions संपत्ति के लिए SpecialInstructions , और इसे इस तरह से एक्सेस करें

 txtSpcInst.Text = GridView2.DataKeys(GridView2.SelectedIndex).Values("SpecialInstructions") 

यही है, यह हर बार बहुत आसान काम करता है।

मेरे पास नया समाधान सीएसएस या जावास्क्रिप्ट या jquery का उपयोग करते हुए क्लाइंट साइड पर कॉलम छिपा है।

 .col0 { display: none; } 

और सेट करें gvClientDetails.Columns[0].Visible = true; , यदि आप false सेट हैं

आप इसे पीछे कोड कर सकते हैं

डेटा बाध्यकारी के बाद Set visible= false स्तंभों के लिए Set visible= false । इसके बाद आप ग्रिड व्यू से row_selection फ़ंक्शन में फिर से दृश्यता " सच्चा " कर सकते हैं। यह काम करेगा !!

जब मैं GridView से कुछ मान का उपयोग GridView प्रकट होने से पहले करना चाहता हूं।

  1. मेरे पास एक BoundField और BoundField को BoundField
  2. RowDataBound इवेंट में, मैं उस घटना में कुछ प्रक्रिया करता हूं
  3. GridView प्रकट होने से पहले मैं यह लिखता हूं:

     protected void GridviewLecturer_PreRender(object sender, EventArgs e) { GridviewLecturer.Columns[0].Visible = false; }