2012-02-13 21 views
8

के अंदर ग्रिड व्यू का उपयोग करना मेरे पास एक अपडेट पैनेल और ग्रिडव्यू है।UpdatePanel

<asp:UpdatePanel ID="uplPanel" UpdateMode="Conditional" runat="server" OnLoad="uplPanel_Load"> 
<ContentTemplate> 
<asp:GridView ID="gvPrList" runat="server" AutoGenerateColumns="false" AllowPaging="false" 
     AllowSorting="false" CssClass="list-table" HeaderStyle-CssClass="header"> 
     <Columns> 
    <ItemTemplate> 
       <asp:Button ID="btnEdit" runat="server" Text="Edit" CssClass="button save" OnCommand="onPrItemCmd" 
        CommandName="editRow" CommandArgument='<%#Bind("ID") %>' Style="width: 80px" /> 
       <asp:Button ID="btnDelete" runat="server" Text="Delete" CssClass="button save" OnCommand="onPrItemCmd" 
        CommandName="deleteRow" CommandArgument='<%#Bind("ID") %>' Style="width: 80px" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

जब मैं Griview अंदर मेरे बटन पर क्लिक करें, यह घटनाओं आग नहीं करता है। कोई विचार?

OnRowCommand="gvPrList_OnRowCommand" 

या वैकल्पिक रूप से अलग-अलग बटन के लिए एक क्लिक करें घटना जोड़ने और फिर फ़ाइल के पीछे कोड में संभाल:

उत्तर

2

मैं निम्नलिखित किया था और यह

काम करता है मैं एचटीएमएल बटन के साथ एएसपी बटन की जगह और अद्यतन panal लोड ईवेंट सक्रिय करने जावास्क्रिप्ट विधि कॉल।

<input id="btnDelete1" type="button" onclick="javascript:DeletePrItem('<%# Eval("ID") %>');" value="Delete" class="button save" style="width: 80px" /> 

मेरे जे एस:

function DeletePrItem(_Id) { 
     __doPostBack('<%= uplPanel.ClientID %>', _Id); 
    } 

मेरे कोड के पीछे:

protected void uplPanel_Load(object sender, EventArgs e) 
    { 
     var arg = Request.Params.Get("__EVENTARGUMENT"); 

     if (arg != null) 
     { 
      if (arg != "") 
      { 
       string recordId = arg.ToString(); 
       //Do deletetion and rebind data grid 

    } 
    } 
} 
4

आप को संभाल कि उस घटना के अंदर इस तरह GridView की OnCommand घटना जोड़ने और फिर करने की जरूरत है

<asp:Button ID="btnEdit" runat="server" OnClick="btnEdit_Click" Text="Edit" CssClass="button save" 
        OnCommand="onPrItemCmd" CommandName="editRow" CommandArgument='<%#Bind("ID") %>' Style="width: 80px" /> 
+0

धन्यवाद। मेरे पास पहले से हीPrItemCmd ईवेंट के लिए हैंडलर विधि के पीछे मेरा कोड है। – Roshe

+0

क्या आपने अपने बटन पर 'ऑनक्लिक' ईवेंट हैंडलर जोड़ने का प्रयास किया है और फिर यह जांच कर रहा है कि क्या यह काम करता है ??? –

0

यह codebehind में अपने आदेश के लिए इवेंट हैंडलर होगा:

protected void onPrItemCmd(object sender, CommandEventArgs e) 
    { 
     //do whatever you want 
     //probably you will need the "ID" or "CommandArgument": 
     string myArgumentID = e.CommandArgument.ToString(); 

     uplPanel.Update(); //since the UpdatePanel is set *UpdateMode="Conditional"* 
    } 

अद्यतन:

शायद, आप कुछ मान्यता जब आप बटन पर क्लिक कर किया जा सकता है। यदि ऐसा है, तो आपको अपने बटन या लिंक गुणों में CausesValidation = "false" जोड़ने की आवश्यकता है

+0

फिर भी मुझे एक ही समस्या का सामना करना पड़ा, मैंने कोशिश की। – Roshe

+0

@ नीला कृपया मेरे उत्तर में अपडेट देखें – aleafonso

+0

हां .. अभी भी एक ही समस्या का प्रयास किया – Roshe

0

कृपया इस कोड को UpdatePanel में जोड़ें।

</ContentTemplate> 
<Triggers> 
    <asp:PostBackTrigger ControlID="gvPrList" EventName="Click" /> 
</Triggers> 
</asp:UpdatePanel> 
+0

मुझे यह त्रुटि मिलती है: 'System.Web.UI.PostBackTrigger' टाइप करें 'EventName' नाम की सार्वजनिक संपत्ति नहीं है। मैं एएसपीनेट 3.5 – Roshe

+0

संरक्षित शून्य क्लिक (ऑब्जेक्ट प्रेषक, कमांडइवेंट आर्ट्स ई) {} // बनाओ यह एक डमी घटना है और – Ruruboy

+0

'System.Web.UI.PostBackTrigger' का प्रयास करें इस संपत्ति में – Roshe

2

मैं एक ही मुद्दा था जहां a onclick साथ स्तंभ बटन एक पोस्टबैक लेकिन OnClick विधि नहीं किया जा रहा था पैदा कर रहे थे मारो। जब मैंने अद्यतन पैनल पर टिप्पणी की और यह सब काम किया।

मैं अद्यतन पैनल के भीतर ग्रिड के लिए एक पोस्टबैक ट्रिगर जोड़कर इस समस्या का समाधान हो:

</ContentTemplate> 
    <Triggers> 
     <asp:PostBackTrigger ControlID="uxWebDataGrid" /> 
    </Triggers> 
</asp:UpdatePanel> 

आशा इस किसी और मदद करता है!

0

मैं एक OnRowCommand ईवेंट जोड़ा गया और UpdatePanel को यह ट्रिगर जोड़ें:

<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="gvPrList" EventName="RowCommand" /> 
</Triggers> 

ध्यान दें कि यह एक Async ट्रिगर है।

1

मुझे एक समान समस्या थी।

आपकी स्थिति के आधार पर, मेरे जैसा ... अद्यतन पैनल के अंदर सभी क्लिक करने योग्य नियंत्रण मैं ट्रिगर्स बनना चाहता हूं; तो मैं बस अपडेटपेनल संपत्ति 'ChildrenAsTriggers = "true" का उपयोग करने में सक्षम था इसलिए समस्या हल करें।

<asp:UpdatePanel runat="server" ID="UPCommunicationlogForm" ChildrenAsTriggers="true" > 

यह मेरी समस्या हल हो जाती है, अब मेरे संपादन और बटन है कि मेरे gridview के अंदर ItemTemplate से उत्पन्न होते हैं हटाने के सर्वर पर अपने-अपने तरीकों कहते हैं।

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

  • कोई संबंधित समस्या नहीं^_^