Click here to Skip to main content
15,887,313 members
Home / Discussions / ASP.NET
   

ASP.NET

 
QuestionLogin Management Pin
shashiankam27-Oct-11 20:14
shashiankam27-Oct-11 20:14 
AnswerRe: Login Management Pin
Richard MacCutchan27-Oct-11 21:50
mveRichard MacCutchan27-Oct-11 21:50 
GeneralRe: Login Management Pin
shashiankam29-Oct-11 1:19
shashiankam29-Oct-11 1:19 
AnswerRe: Login Management Pin
jkirkerx28-Oct-11 18:48
professionaljkirkerx28-Oct-11 18:48 
Questionvalidate list control 2010 Pin
classy_dog27-Oct-11 12:14
classy_dog27-Oct-11 12:14 
AnswerRe: validate list control 2010 Pin
phil.o27-Oct-11 22:57
professionalphil.o27-Oct-11 22:57 
AnswerRe: validate list control 2010 Pin
jkirkerx28-Oct-11 19:09
professionaljkirkerx28-Oct-11 19:09 
QuestionIssues with Partial Postback / AJAX / Update Panel Pin
jscheponik27-Oct-11 4:42
jscheponik27-Oct-11 4:42 
So I'm trying to have a textbox update during the run process of a backend powershell script. I have the script running correctly, threaded and returning info and updating the value of txtProgress.Text during the process. The problem is I am unable to get the partial postback to run and update the web page during this process. Any help would be greatly appreciated. Here is the code:

ASP.NET
<table class="style1">
        <tr>
            <td>
                <asp:Label ID="lblSpace3" runat="server" Width="75px"></asp:Label>
            </td>
            <td style="text-align: center">
                <asp:UpdatePanel ID="upProgress" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" 
                    Text="Submit" />
                                                            
                        <asp:Button ID="btnCancel" runat="server" onclick="btnCancel_Click" 
                            PostBackUrl="http://uspmvvmt001/vrs/admins/admins.aspx" Text="Cancel" />
                        <br />
                        <br />
                        <asp:TextBox ID="txtProgress" runat="server" Height="250px" 
                            TextMode="MultiLine" Width="500px"></asp:TextBox>
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="txtProgress" EventName="TextChanged" />
                    </Triggers>
                </asp:UpdatePanel>
            </td>
            <td style="text-align: center">
                <asp:Label ID="lblSpace4" runat="server" Width="75px"></asp:Label>
            </td>
        </tr>
    </table>


C#
 protected void btnSubmit_Click(object sender, EventArgs e)
        {
            string Addsnapin = "Add-PSSnapin VMware.VimAutomation.Core";
            string ConnectVserver = "Connect-VIServer vcenter-us-002 -user USERNAME -password PASSWORD";
            int cpus, memory, numdisks, disk1, disk2 , disk3, disk4;
            string vc, cluster, vmname, os;
            string vars, fname;
                        
            fname = CreateFileName(24);
            string ScriptFile = "UNCPATH\\ProvisionVM.ps1";
            string OutFile = "UNCPATH\\ProvisionVM-testout.ps1";
            string LogFile = "UNCPATN\\" + fname + ".log";
            string scriptText = ReadPowerShellScript(ScriptFile);
            cpus = Convert.ToInt32(ddlNumProc.Text.ToString());
            memory = Convert.ToInt32(ddlAmtMem.Text.ToString()) * 1024;            
            vc = txtVC.Text.ToString();
            cluster = ddlCluster.Text.ToString();
            vmname = txtVMName.Text.ToString();
            os = ddlOS.SelectedValue.ToString();
            numdisks = Convert.ToInt32(ddlNumDisk.Text.ToString());
            vars = "$cpus=" + cpus + "\r\n";
            vars += "$memory=" + memory + "\r\n";
            vars += "$vc=\"" + vc + "\"\r\n";
            vars += "$cluster=\"" + cluster + "\"\r\n";
            vars += "$vmname=\"" + vmname + "\"\r\n";
            vars += "$os=\"" + os + "\"\r\n";
            vars += "$numdisk=" + numdisks + "\r\n";
            vars += "$LogFile=\"" + LogFile + "\"\r\n";
            switch(numdisks)
            {
                case 1:
                    disk1 = Convert.ToInt32(txtDisk1.Text.ToString()) * 1024;
                    vars += "$disk1=" + disk1 +"\r\n";
                    break;
                case 2:
                    disk1 = Convert.ToInt32(txtDisk1.Text.ToString()) * 1024;
                    disk2 = Convert.ToInt32(txtDisk2.Text.ToString()) * 1024;
                    vars += "$disk1=" + disk1 + "\r\n";
                    vars += "$disk2=" + disk1 + "\r\n";
                    break;
                case 3:
                    disk1 = Convert.ToInt32(txtDisk1.Text.ToString()) * 1024;
                    disk2 = Convert.ToInt32(txtDisk2.Text.ToString()) * 1024;
                    disk3 = Convert.ToInt32(txtDisk3.Text.ToString()) * 1024;
                    vars += "$disk1=" + disk1 + "\r\n";
                    vars += "$disk2=" + disk1 + "\r\n";
                    vars += "$disk3=" + disk1 + "\r\n";
                    break;
                case 4:
                    disk1 = Convert.ToInt32(txtDisk1.Text.ToString()) * 1024;
                    disk2 = Convert.ToInt32(txtDisk2.Text.ToString()) * 1024;
                    disk3 = Convert.ToInt32(txtDisk3.Text.ToString()) * 1024;
                    disk4 = Convert.ToInt32(txtDisk4.Text.ToString()) * 1024;
                    vars += "$disk1=" + disk1 + "\r\n";
                    vars += "$disk2=" + disk1 + "\r\n";
                    vars += "$disk3=" + disk1 + "\r\n";
                    vars += "$disk4=" + disk1 + "\r\n";
                    break;
                default:
                    break;
            }
            scriptText = scriptText.Replace("**VARIABLES**", vars.ToString());
            //CreateVM(scriptText, LogFile);
            runSpace.Open();
            ThreadScript(Addsnapin, sender, e);
            ThreadScript(ConnectVserver, sender, e);
            ThreadScript(scriptText, sender, e);
            runSpace.Close();
}



C#
private void ThreadScript(string scriptText, object sender, EventArgs e)
       {
           Collection<PSObject> PSCollection = new Collection<PSObject>();
           Collection<Object> PSErrorCollection = new Collection<Object>();
           PipelineExecutor PExecutor = new PipelineExecutor(runSpace,scriptText);

           //Send for exection.
           //ExecuteScript(Block.Script);
           PExecutor.Start();

           // Process the waithandles.
           while (PExecutor.PLine.PipelineStateInfo.State == PipelineState.Running)
           {
               // Wait for either error or data waithandle.
               switch (WaitHandle.WaitAny(PExecutor.Hand))
               {
                   // Data
                   case 0:
                       Collection<PSObject> data = PExecutor.PLine.Output.NonBlockingRead();
                       if (data.Count > 0)
                       {
                           for (int cnt = 0; cnt <= (data.Count - 1); cnt++)
                           {
                               txtProgress.Text += data[cnt].ToString();
                               txtProgress.Text += "\r\n";
                               upProgress.Update();
                               //PSCollection.Add(data[cnt]);
                           }
                       }

                       // Check to see if the pipeline has been closed.
                       if (PExecutor.PLine.Output.EndOfPipeline)
                       {
                           // Bring back the exit code.
                           //ExitCode = RHost.ExitCode;
                       }
                       break;
                   case 1:
                       Collection<object> Errordata = PExecutor.PLine.Error.NonBlockingRead();
                       if (Errordata.Count > 0)
                       {
                           for (int count = 0; count <= (Errordata.Count - 1); count++)
                           {
                               PSErrorCollection.Add(Errordata[count]);
                           }
                       }
                       break;
               }
           }

           PExecutor.Stop();
           PExecutor.PLine.Dispose();
       }

   }


If you need more info, please ask.
Questionweb value Pin
sc steinhayse27-Oct-11 3:53
sc steinhayse27-Oct-11 3:53 
AnswerRe: web value Pin
Dennis E White27-Oct-11 4:31
professionalDennis E White27-Oct-11 4:31 
AnswerRe: web value Pin
Abhinav S27-Oct-11 4:32
Abhinav S27-Oct-11 4:32 
AnswerRe: web value Pin
Not Active27-Oct-11 5:23
mentorNot Active27-Oct-11 5:23 
AnswerRe: web value Pin
jkirkerx28-Oct-11 19:40
professionaljkirkerx28-Oct-11 19:40 
QuestionNone Object Oriented Control Pin
Ali Al Omairi(Abu AlHassan)26-Oct-11 20:55
professionalAli Al Omairi(Abu AlHassan)26-Oct-11 20:55 
AnswerRe: None Object Oriented Control Pin
Not Active27-Oct-11 2:43
mentorNot Active27-Oct-11 2:43 
GeneralRe: None Object Oriented Control Pin
Ali Al Omairi(Abu AlHassan)27-Oct-11 4:53
professionalAli Al Omairi(Abu AlHassan)27-Oct-11 4:53 
GeneralRe: None Object Oriented Control Pin
Not Active27-Oct-11 5:28
mentorNot Active27-Oct-11 5:28 
GeneralRe: None Object Oriented Control Pin
Ali Al Omairi(Abu AlHassan)27-Oct-11 7:43
professionalAli Al Omairi(Abu AlHassan)27-Oct-11 7:43 
GeneralRe: None Object Oriented Control Pin
Not Active27-Oct-11 7:46
mentorNot Active27-Oct-11 7:46 
GeneralRe: None Object Oriented Control Pin
Ali Al Omairi(Abu AlHassan)29-Oct-11 14:19
professionalAli Al Omairi(Abu AlHassan)29-Oct-11 14:19 
AnswerRe: None Object Oriented Control Pin
jkirkerx28-Oct-11 19:53
professionaljkirkerx28-Oct-11 19:53 
QuestionHow to read server registry from client (or host)? Pin
WomblingFree25-Oct-11 13:15
WomblingFree25-Oct-11 13:15 
AnswerRe: How to read server registry from client (or host)? Pin
Bernhard Hiller25-Oct-11 20:15
Bernhard Hiller25-Oct-11 20:15 
GeneralRe: How to read server registry from client (or host)? Pin
WomblingFree26-Oct-11 9:37
WomblingFree26-Oct-11 9:37 
AnswerRe: How to read server registry from client (or host)? Pin
jkirkerx28-Oct-11 19:59
professionaljkirkerx28-Oct-11 19:59 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.