I am trying to delete individual delete from Wrapper but i am getting this error.
Too many DML statements
VF Page
<apex:page id="page" controller="AttachmentListWithFilterController" sidebar="false" readOnly="true">
<apex:includeScript value="{!URLFOR($Resource.jQuery, 'js/jquery-1.6.2.min.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.jQuery, 'js/jquery-ui-1.8.16.custom.min.js')}"/>
<apex:stylesheet value="{!URLFOR($Resource.jQuery, 'css/ui-lightness/jquery-ui-1.8.16.custom.css')}"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js"></script>
<link href="https://cdn.datatables.net/1.10.9/css/jquery.dataTables.min.css" rel="stylesheet"/>
<script type="text/javascript">
j$ = jQuery.noConflict();
j$(function () {
j$("#example1").dataTable();
});
</script>
<apex:actionStatus id="actStatusId" >
<apex:facet name="start" >
<img src="/img/loading.gif" />
</apex:facet>
</apex:actionStatus>
<!-- <c:waitScreen >
<img src="/img/loading32.gif" />
<div style="font-size:150%;padding:5px">Please Wait....</div>
</c:waitScreen> -->
<script type="text/javascript">
//This will load as soon as the page is ready and will setup our slider
var str;
j$ = jQuery.noConflict();
j$(document).ready(function(){
var i=0,a=0;
str = document.getElementById('{!$Component.form.selectedF}').value;
var b=document.getElementById('{!$Component.page.form.pb.slidervalue.idInputHiddenMax}').value;
console.log('Value of b'+b);
$("#slider-range").slider({ //This line creates a slider on the DIV specified, options are passed arguments, comma separated below
range: true, //This give the slider and top and bottom
min: 0, //Min value for slider
max: b, //Max value for slider
values: ['{!sSliderFieldMin }','{!sSliderFieldMax }'], //Start values for the slider
slide: function(event, ui){ //This function executes every time slider is moved and applies the slider values to the inputHidden fields as well as the output below the slider
document.getElementById('{!$Component.page.form.pb.slidervalue.idInputHiddenMin}').value = ui.values[0];
document.getElementById('{!$Component.page.form.pb.slidervalue.idInputHiddenMax}').value = ui.values[1];
$("#amountValue").html( + ui.values[0] + 'KB - ' + ui.values[1] + 'KB');
//callfind();
//console.log(i++);
},
stop:function(event,ui){console.log(ui);callfind();}
});
$("#amountValue").html( + $("#slider-range").slider("values", 0) + 'KB - ' + $("#slider-range").slider("values", 1) + 'KB');
});
function checkMethod(){
var i=0;
str = document.getElementById('{!$Component.form.selectedF}').value;
var b=document.getElementById('{!$Component.page.form.pb.slidervalue.idInputHiddenMax}').value;
console.log('Value of b'+b);
$("#slider-range").slider({ //This line creates a slider on the DIV specified, options are passed arguments, comma separated below
range: true, //This give the slider and top and bottom
min: 0, //Min value for slider
max: b, //Max value for slider
values: ['{!sSliderFieldMin }',b], //Start values for the slider
slide: function(event, ui){ //This function executes every time slider is moved and applies the slider values to the inputHidden fields as well as the output below the slider
document.getElementById('{!$Component.page.form.pb.slidervalue.idInputHiddenMin}').value = ui.values[0];
document.getElementById('{!$Component.page.form.pb.slidervalue.idInputHiddenMax}').value = ui.values[1];
$("#amountValue").html( + ui.values[0] + 'KB - ' + ui.values[1] + 'KB');
//callfind();
//console.log(i++);
},
stop:function(event,ui){console.log(ui);callfind();}
});
$("#amountValue").html( + $("#slider-range").slider("values", 0) + 'KB - ' + $("#slider-range").slider("values", 1) + 'KB');
}
</script>
<script type="text/javascript">
function selectAllCheckboxes(obj,receivedInputID){
var inputCheckBox = document.getElementsByTagName("input");
for(var i=0; i<inputCheckBox.length; i++){
if(inputCheckBox[i].id.indexOf(receivedInputID)!=-1){
inputCheckBox[i].checked = obj.checked;
}
}
}
function selectThis(ele,id){
if(ele.checked)
str+=id;
else
str = str.replace(id,'');
document.getElementById('{!$Component.form.selectedF}').value = str;
}
</script>
<apex:pageMessages ></apex:pageMessages>
<apex:Form id="form">
<apex:inputhidden id="selectedF" value="{!selectedFiles}"/>
<apex:actionFunction name="callfind" action="{!searchByRange}" reRender="PGTable" status="actStatusId" />
<apex:pageBlock id="pb" >
<apex:pageblockSection title="Select Type" collapsible="false">
<apex:selectRadio value="{!Selected}">
<apex:actionSupport event="onchange" action="{!TakeOther}" reRender="pblock,showOwner,showslider,slidervalue,demoid,example1_wrapper,table" onComplete="checkMethod();"/>
<apex:selectoptions value="{!radioValues}" />
</apex:selectRadio>
</apex:pageBlockSection>
<apex:pageBlockSection title="Filter" collapsible="true" columns="2" id="pblock">
<apex:panelGrid columns="3" id="showOwner">
<apex:outputLabel value="Owner" rendered="{!renderName4}"/>
<apex:inputField value="{!attachmentToUser.OwnerId}" rendered="{!renderName1}" id="AttachmentID" required="false"/>
<apex:inputField value="{!cv.OwnerID}" rendered="{!renderName2}" id="FileID" required="false"/>
<apex:inputField value="{!documentToUser.AuthorId}" rendered="{!renderName3}" id="DocumentID" required="false"/>
<apex:commandButton action="{!searchByOwner}" value="Submit" reRender="DemoRepeat" rendered="{!ShowSumbit}"/>
</apex:panelGrid>
<apex:pageBlockSectionItem id="showslider" >
<div id="slider-range" style="font-size: 90%; margin-top: 0.5em;width:100%"></div>
<div id="amountValue" style="text-align: center"></div>
<apex:actionFunction action="{!searchByRange}" name="myFunction" reRender="RenderData"/>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
<apex:pageBlockSection columns="1" id="slidervalue">
<apex:inputhidden value="{!sSliderFieldMin}" id="idInputHiddenMin"/>
<apex:inputhidden value="{!sSliderFieldMax}" id="idInputHiddenMax"/>
</apex:pageBlockSection>
<center> <apex:commandButton value="Delete Selected" reRender="PGTable" action="{!deleteSelected}" rendered="{!ShowDelete}"/></center>
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>Select CheckBox</th>
<th>Name</th>
<th>BodyLength</th>
<th>Created Date</th>
<th>Owner Name</th>
<th>(Click To View)</th>
</tr>
</thead>
<tbody>
<apex:repeat value="{!wraplist}" id="demoid" var="a">
<tr>
<td> <apex:facet name="header">
<apex:inputCheckbox onclick="selectAllCheckboxes(this,'inputId')"/>
</apex:facet>
<apex:inputCheckbox value="{!a.selected}" id="inputId" /></td>
<td> <apex:outputText value="{!a.Name}"/></td>
<td> <apex:outputText value="{!a.size}"/></td>
<td> <apex:outputText value="{!a.Mydate}"/></td>
<td> <apex:outputText value="{!a.OwnerName}"/></td>
<td> <apex:commandLink value="View" action="{!viewAttach}" target="_blank" >
<apex:param id="Wrapid" name="Attid" value="{!a.index}" assignTo="{!opget}"/>
</apex:commandLink>
<apex:commandLink value="Delete" action="{!deleteAttch}" reRender="PGTable">
<apex:param id="Deleteid" name="delete" value="{!a.index}" assignTo="{!opget}"/>
</apex:commandLink> </td>
</tr>
</apex:repeat>
Controller
public void deleteAttch()
{
Integer q=opget;
if(selected=='Attachment')
{
Id lid=wraplist.get(q).Attachid;
system.debug('Deleted id'+lid);
wraplist.remove(q);
Attachment a=new Attachment();
a=[Select id,Name from Attachment where id=:lid];
system.debug('**********A'+a);
delete a;
}else if(selected=='ContentDocument')
{
Id lid=wraplist.get(q).Fileid;
ContentDocument c=new ContentDocument();
c=[Select id,Title from ContentDocument where id=:lid];
delete c;
wraplist.remove(q);
}else if(selected=='Document')
{
Id lid=wraplist.get(q).Docid;
Document d=new Document();
d=[Select id,Name from Document where id=:lid];
delete d;
wraplist.remove(q);
}
}
deleteAttch
and the fields it depends on. Hard to see a cause from what you have posted. – Keith C Oct 5 '15 at 14:05system.debug
output to narrow down where the problem is coming from. Also use any line number information included in the error output. (Checking the "Development Mode" flag on the User you are testing with provides more information in the error page.) Good luck. – Keith C Oct 5 '15 at 17:43