2010-08-23 11 views
10

को संभाला नहीं गया था, मुझे यह त्रुटि बार-बार मिल रही है।ग्रिड व्यू 'ऑर्डर ग्रिड व्यू' निकाल दिया गया कार्यक्रम रोडडेटिंग जो

डेटा को ग्रिडव्यू कार्यों में लोड करना, लेकिन जब मैं एक पंक्ति को हटाना चाहता हूं तो मुझे वह त्रुटि मिल रही है।

<asp:GridView ID="OrdersGridView" runat="server" AutoGenerateColumns="False" onrowdeleted="OrdersGridView_RowDeleted"> 
    <Columns> 
     <asp:TemplateField HeaderText="Product Name"> 
      <ItemTemplate> 
       <asp:HiddenField runat="server" ID="HiddenField1" Value='<%#Eval("oid")%>'></asp:HiddenField> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="titel" HeaderText="Name" /> 
     <asp:BoundField DataField="oid" HeaderText="Itemno" /> 
     <asp:BoundField DataField="prijs" HeaderText="Price" /> 
     <asp:CommandField ButtonType="Link" CausesValidation="false" HeaderText="Update" ShowDeleteButton="True" /> 
     <asp:BoundField DataField="prijs" HeaderText="Subtotal" /> 
    </Columns> 
</asp:GridView> 

सी # codebehind - मैं वास्तव में डेटाबेस से पंक्ति नहीं हटा रही हूं लेकिन यह एक परीक्षण है:

protected void OrdersGridView_RowDeleted(object sender, System.Web.UI.WebControls.GridViewDeletedEventArgs e) 
{ 
    if (e.Exception != null) 
    { 
     lblStatus.Text = e.Exception.ToString(); 
    } 
    else 
    { 
     string sValue = ((HiddenField)OrdersGridView.SelectedRow.Cells[1].FindControl("HiddenField1")).Value; 
     lblStatus.Text = sValue; 
    } 
} 

लेकिन क्लिक करने के बाद, मैं अगले त्रुटि के साथ एक bigass पीला पेज मिलती है:

The GridView 'OrdersGridView' fired event RowDeleting which wasn't handled.

उत्तर

0

ऐसा लगता है कि आप "onrowdeleted" घटना संभाल रहे हैं, न कि "RowDeleting" घटना

में अपने मार्कअप, परिवर्तन: onrowdeleted = "OrdersGridView_RowDeleted"

= "OrdersGridView_RowDeleting"

को RowDeleting देखो इस घटना के लिए एक डॉक्स: आप भी देखेंगे कि आपका हैंडलर के हस्ताक्षर को बदलने के लिए की आवश्यकता होगी: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.onrowdeleting.aspx अपने नए हैंडलर इस तरह someting दिखेगा:

protected void OrdersGridView_RowDeleting(object sender, System.Web.UI.WebControls.GridViewDeleteEventArgs e) { 
if (e.Exception != null) { 
    lblStatus.Text = e.Exception.ToString(); 
    } 
    else 
    { 
    string sValue = ((HiddenField)OrdersGridView.SelectedRow.Cells[1].FindControl("HiddenField1")).Value; lblStatus.Text = sValue; 
    } 
} 

RowDeleting घटना तो onrowdeleted घटना, होता है। RowDeleting संभावित रूप से आपको ईवेंट को रद्द करने देता है।

+0

मैं

आप OnRowDeleting अपने GridView को जोड़ सकता है मैंने इसे बदल दिया है, लेकिन यह काम नहीं करता है, मुझे एक ही त्रुटि मिली है लेकिन मेरे पास RowDeleting = "OrdersGridView_RowDeleting" था और RowDeleted = "OrdersGridVi ew_RowDeleted "पहले और पंक्ति वितरण के बारे में पढ़ने के बाद, मैंने उस कारण को छोड़ दिया क्योंकि मैं उपयोगकर्ता से पूछना नहीं चाहता कि वह पंक्ति को हटाने के साथ ठीक है, तो मैं इसे हटाना चाहता हूं। – Janis

+0

ग्रिड व्यू डेटा से जुड़ता है, और किसी को रिकॉर्ड को हटाने की इजाजत देता है: यह घटना आपको ग्रिड को बताती है कि * यह कैसे करें *। यह त्रुटि कह रही है "आपने मुझे एक रिकॉर्ड हटाने के लिए कहा है, लेकिन आपने मुझे बताया नहीं है।" हटाए जाने के बाद पंक्तिबद्ध हटा दिया गया है। क्या आप इंगित कर सकते हैं कि यह कैसे काम नहीं करता है (एक ही त्रुटि, अलग त्रुटि, lblStatus.Text या sValue अपेक्षित मान नहीं था)? धन्यवाद –

+0

एक ही पीले रंग के त्रुटि पृष्ठ पर एक ही त्रुटि है, त्रुटि मेरे lblstatus लेबल पर भी दिखाई नहीं देती है। किसी भी तरह से मेरे मेजबान में परिवर्तित फ़ाइलों को प्रकाशित करने के साथ ऐसा कुछ करने के लिए है। मुझे अपने स्थानीय स्थान पर त्रुटि नहीं है। – Janis

11

डिलीट बटन के साथ एक ग्रिड व्यू में एक हटाएं बटन, या यहां तक ​​कि एक नियमित बटन भी, स्वचालित रूप से OnRowDeleting को आग लगाने का प्रयास करेगा। आप चीजों को खुश करने के लिए इसे जोड़ सकते हैं, लेकिन ऐसा कुछ भी नहीं है जिससे यह आपके डिलीट के व्यवहार को प्रभावित न करे। अपने codebehind ऐड में

<asp:GridView ID="OrdersGridView" runat="server" AutoGenerateColumns="False" onrowdeleted="OrdersGridView_RowDeleted" OnRowDeleting="OrdersGridView_RowDeleting"> 

और फिर: किसी अन्य के लिए deleterecord तरह

void OrdersGridView_RowDeleting (object sender, GridViewDeleteEventArgs e) 
{ 
} 
+0

वाह, माइक्रोसॉफ्ट लॉल। मैं घंटों की खोज कर रहा हूं, 4.5 में ऐसा व्यवहार नहीं हो सकता है। धन्यवाद – Machinegon

+0

@ जोएल बेकहम, आप दा आदमी। धन्यवाद! – strider

4

परिवर्तन आपके पंक्ति आदेश नाम हटा से

+0

धन्यवाद आपने अपना समय बचाया .... :) –

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