मेरे पास GridView
परिभाषित किया गया है:
& lt ; Asp: GridView आईडी = "myGridView" AutoGenerateColumns = "false" runat = "server" OnLoad = "myGridView_Load" ऑनरॉ कॉमांड = "myGridView_Command" OnRowEditing = "myGridView_RowEditing" OnRowDeleting = "myGridView_RowDeleting" DataKeyNames = "आईडी" & gt; & LT; कॉलम & gt; & Lt; एएसपी: बाउंडफिल्ड डेटाफिल्ड = "आईडी" दृश्यमान = "गलत" / & gt; & Lt; एएसपी: बाउंडफिल्ड डेटाफिल्ड = "जन्मदिन" दृश्यमान = "गलत" / & gt; & Lt; एएसपी: बाउंडफिल्ड डेटाफिल्ड = "फर्स्टनेम" हैडर टेक्स्ट = "प्रथम नाम" / & gt; & Lt; एएसपी: बाउंडफिल्ड डेटाफिल्ड = "अंतिम नाम" हैडर टेक्स्ट = "अंतिम नाम" / & gt; & Lt; asp: TemplateField हेडर टेक्स्ट = "अन्य" & gt; & LT; ItemTemplate & gt; & Lt; asp: LinkButton आईडी = "editLB" runat = "सर्वर" टेक्स्ट = "संपादित करें" CommandName = "संपादित करें" / & gt; & Lt; asp: LinkButton आईडी = "deleteLB" runat = "server" text = "delete" commandName = "हटाएं" / & gt; & Lt; / ItemTemplate & gt; & Lt; / एएसपी: TemplateField & gt; & Lt; / कॉलम & gt; & Lt; / एएसपी: GridView & gt;
जब कोई उपयोगकर्ता संपादन बटन को क्लिक करता है, तो मुझे जन्मदिन
कॉलम का मान प्राप्त करना होगा। इसे करने के लिए, मैंने निम्न प्रयास किया है:
संरक्षित शून्य myGridView_RowEditing (ऑब्जेक्ट प्रेषक, GridViewEditEventArgs ई) {GridViewRow पंक्ति = gvUsers.Rows [e.NewEditIndex]; दिनांक समय जन्मदिन = (दिनांक समय) (पंक्ति। सील्स [1]। पाठ); // काम नहीं करता}
मुझे पता है कि इस तथ्य के साथ कुछ है कि स्तंभ दिखाई नहीं दे रहा है कॉलम छिपा हुआ होना चाहिए। लेकिन मुझे उस मूल्य की आवश्यकता है & mdash; मैं यह कैसे कर सकता हूँ?
समस्या यह है कि जब बाउंडफिल्ड < / कोड> गलत पर सेट है कॉलम ग्राहक को प्रदान नहीं किया गया है इसके बजाय काम करने के लिए
HiddenField
को इसके बजाय TemplateField
में उपयोग करना होगा।
& lt; एएसपी: TemplateField & gt; & LT; ItemTemplate & gt; & Lt; asp: HiddenField आईडी = "हिडनफिल्ड 1" रनैट = "सर्वर" मान = '& lt;% # Eval ("जन्मदिन")% & gt;' / & Gt; & Lt; / ItemTemplate & gt; & LT; EditItemTemplate & gt; & Lt; asp: HiddenField आईडी = "हिडनफिल्ड 1" रनैट = "सर्वर" मान = '& lt;% # Eval ("जन्मदिन")% & gt;' / & Gt; & Lt; / EditItemTemplate & gt; & Lt; / एएसपी: TemplateField & gt;
संरक्षित शून्य GridView_RowEditing (ऑब्जेक्ट प्रेषक, GridViewEditEventArgs ई) {GridViewRow पंक्ति = GridView.Rows [e.NewEditIndex]; छिपे हुए छिपा हुआ छिपा हुआ = (छिपी हुई फ़ील्ड) पंक्ति। सील्स [0] .FindControl ("HiddenField1"); दिनांक समय जन्मदिन = कन्वर्ट। ToDateTime (hidden.Value); }
संपादित करें
उपरोक्त विधि अभी भी तालिका में स्तंभ को रेखांकित करती है, इसलिए आप एक खाली कॉलम के साथ समाप्त होते हैं। यह काम करता है, लेकिन सबसे अच्छा समाधान नहीं है, यहां एक तरीका है कि जन्मदिन फ़ील्ड छिपाना है लेकिन फिर भी इसका मान रोव संपादन
ईवेंट हैंडलर में मिलता है बस ध्यान रखें कि जन्मदिन अभी भी क्लाइंट में प्रदान किया गया है, सिर्फ प्रदर्शित नहीं।
& lt; शैली प्रकार = "पाठ / सीएसएस" & gt; .ide {display: none; } & Lt; / style & gt; & Lt; एएसपी: बाउंडफिल्ड डाटाफील्ड = "जन्मदिन" & gt; & Lt; आइटम शैली CssClass = "छिपाना" / & gt; & Lt; / एएसपी: BoundField & gt;
संरक्षित शून्य GridView_RowEditing (ऑब्जेक्ट प्रेषक, GridViewEditEventArgs ई) {GridViewRow पंक्ति = GridView1.Rows [e.NewEditIndex]; दिनांकटाइम जन्मदिन = कन्वर्ट.ToDateTime (row.Cells [1]। पाठ); }
No comments:
Post a Comment