Cannot get workflow to trigger event receiver

Change the sequence number of the receiver in Elements.xml to a lower value so that the receiver will run before the workflows?

Another way is to actually update the list item inside the workflow, usually assigning the same value to the field will work and results in no change to the list item.

Please note that workflow status is set asynchronously, meaning if you make the workflow trigger the event receiver and inside event receiver you read the workflow status, the workflow status is not guaranteed to be correct at the time as the update happens asynchronously.

The best way to read the eventual workflow status is to write it to a list item’s field and read from there in the event receiver.

Disable button on submit using javascript to prevent double clicking

Disable button on submit instead of onclick

Use this code?

Button is not firing postBack because you have disabled this. The approach to avoid multiple postBack is to have two buttons side by side. Real and dummy. On first click hide/delete the real button and show the dummy one
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" ClientIDMode="Static" OnClientClick="disableButton();"/>

<asp:Button ID="ButtonDummy" runat="server" Text="Button" ClientIDMode="Static" OnClientClick='return false;' style="display:none;"/>
and JS:
function disableButton() {

 $("#Button1").hide();

 $("#ButtonDummy").show();

 return true;
 }
shareimprove this answer

Allow ASP.NET form to be used after downloading a file in SharePoint webpart

Solution: the most effective solution: add “_spFormOnSubmitCalled=false;_spSuppressFormOnSubmitWrapper=true;” to OnClientClick of the button

<asp:LinkButton ID=”lbExport”
runat=”server” Text=”Export”
OnClick=”lbExport_Click”
OnClientClick=”_spFormOnSubmitCalled=false;_spSuppressFormOnSubmitWrapper=true;”/>

Solution:

Add this code to the .ascx file

<script type=”text/javascript”>
    function setFormSubmitToFalse() {
        setTimeout(function () { _spFormOnSubmitCalled = false; }, 3000);
        return true;
    }
</script>

Then, for the download button, add the code to call this function after user clicks it

OnClientClick=”setFormSubmitToFalse”

Another way is to refresh the page on client after certain time

onclientclick="timedRefresh(2000)"

then in your html..

    <script type="text/JavaScript">
    <!--
    function timedRefresh(timeoutPeriod) {
        setTimeout("location.reload(true);",timeoutPeriod);
    }
    //   -->

EventReceiver cheat sheet

List item:
List BeforeProperties AfterProperties properties.ListItem
ItemAdding No value New value Null
ItemAdded No value New value New value
ItemUpdating No value Changed value Original value
ItemUpdated No value Changed value Changed value
ItemDeleting No value No value Original value
ItemDeleted No value No value Null
Document Library:
Library BeforeProperties AfterProperties properties.ListItem
ItemAdding No value No value Null
ItemAdded No value No value New value
ItemUpdating Original value Changed value Original value
ItemUpdated Original value Changed value Changed value
ItemDeleting No value No value Original value
ItemDeleted No value No value Null

Allow workflows to change approval status

Follow the instructions of the last answer at the end of the page.

https://social.technet.microsoft.com/Forums/office/en-US/9292c3ef-b456-4115-8b9c-bfa63782dfd5/workflow-can-use-app-permissions-feature-is-not-activating?forum=sharepointadmin

If Workflow Service Application is not displayed, enabled it by launching the Farm Configuration Wizard.

Don’t debug often

Sometimes it’s better to code the whole module first instead of debugging and testing continuously. Debugging is very time consuming especially for heavy applications like SharePoint’s.

If the deadline is approaching, at least you have a module that has already been thought out, you can mitigate problems later. It’s a better solution that trying to implement the module when deadline approaches.

For big application, debugging is very time consuming and disruptive to your flow.
Write code in big chunks, then debug once in one session to save time.

Ways to debug ASP.NET and Sharepoint webparts

Either run Debug from Visual Studio, which will retract and redeploy the project before deploying and more time consuming

Or, From “Debug”, select “Attach to process…” and attach the debugger to the w3wp.exe processes and start debugging. Make sure to open the browser and browse the site first to start the processes before attaching.