Hi Friends,
I am new to this forum i am working on a project. where A Button click("Show Activity Button") should open a Rad window . In that Rad Window there are four checkBoxes which come from DataBase if we check "Development"( Attached File img1.png) It should go back to the parent page and display what it is there in the attached file "img2.png". If we multi check the Check boxes it should display the fields accordingly. And when we click on Submit button in the parent page it should send it to the database .
Please help me out.
I am new to this forum i am working on a project. where A Button click("Show Activity Button") should open a Rad window . In that Rad Window there are four checkBoxes which come from DataBase if we check "Development"( Attached File img1.png) It should go back to the parent page and display what it is there in the attached file "img2.png". If we multi check the Check boxes it should display the fields accordingly. And when we click on Submit button in the parent page it should send it to the database .
Please help me out.
13 Answers, 1 is accepted
0
Prashanth
Top achievements
Rank 1
answered on 13 Aug 2012, 11:25 AM
I don't know how to do this ... Anyone please help me out ...
0
Princy
Top achievements
Rank 2
answered on 13 Aug 2012, 11:39 AM
Hi Prashanth,
You can get the the values from the ChildWindow as follows.
Parent Window
ASPX:
Javascript:
ChildWindow
ASPX:
Javascript:
Hope this helps.
Thanks,
Princy.
You can get the the values from the ChildWindow as follows.
Parent Window
ASPX:
<telerik:RadWindowManager ID="RadWindowManager1" ShowContentDuringLoad="false" VisibleStatusbar="false" ReloadOnShow="true" runat="server" Skin="Sunset" EnableShadow="true"> <Windows> <telerik:RadWindow ID="RadWindow1" runat="server" Behaviors="Close" OnClientClose="OnClientClose" NavigateUrl="ChildWindow.aspx"> </telerik:RadWindow> </Windows> </telerik:RadWindowManager><asp:Button ID="Button1" runat="server" OnClientClick="openWin(); return false;" />Javascript:
<script type="text/javascript"> function openWin() { var oWnd = radopen("ChildWindow.aspx", "RadWindow1"); } function OnClientClose(oWnd, args) { //get the transferred arguments var arg = args.get_argument(); if (arg) { var Checkox1 = arg.one; var Checkox2 = arg.two; var Checkox3 = arg.three; } }</script>ChildWindow
ASPX:
<asp:CheckBox ID="CheckBox1" Text="1" runat="server" /><asp:CheckBox ID="CheckBox2" Text="2" runat="server" /><asp:CheckBox ID="CheckBox3" Text="3" runat="server" /><asp:Button ID="Submit" runat="server" OnClientClick="returnToParent(); return false;" />Javascript:
<script type="text/javascript"> function GetRadWindow() { var oWindow = null; if (window.radWindow) oWindow = window.radWindow; else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; return oWindow; } function returnToParent() { var oArg = new Object(); oArg.one = document.getElementById("CheckBox1").checked; oArg.two = document.getElementById("CheckBox2").checked; oArg.three = document.getElementById("CheckBox3").checked; var oWnd = GetRadWindow(); oWnd.close(oArg); }</script>Hope this helps.
Thanks,
Princy.
0
Prashanth
Top achievements
Rank 1
answered on 13 Aug 2012, 12:21 PM
Hi Princy,
Thanks for the Post i will check and get back to you immediately...
Thanks for the Post i will check and get back to you immediately...
0
Prashanth
Top achievements
Rank 1
answered on 13 Aug 2012, 12:32 PM
Hi Princy,
I checked with your code....I am not getting back the values from the child window by the way i want it in CheckBoxList with database values..Once please check my attached files i want the things to happen like that... please help me out...
I checked with your code....I am not getting back the values from the child window by the way i want it in CheckBoxList with database values..Once please check my attached files i want the things to happen like that... please help me out...
0
Princy
Top achievements
Rank 2
answered on 14 Aug 2012, 05:12 AM
Hi Prashanth,
I suppose you need to get the values in the server side. You can achieve this by setting value in a hiddenfield from clientside and firing a buttonclick as follows.
ASPX:
Javascript:
C#:
Please provide your full code if this doesn't helps.
Thanks,
Princy.
I suppose you need to get the values in the server side. You can achieve this by setting value in a hiddenfield from clientside and firing a buttonclick as follows.
ASPX:
<asp:Button ID="Button1" runat="server" Text="Open Window" OnClientClick="openWin(); return false;" /><asp:HiddenField ID="HiddenField1" runat="server" /><asp:HiddenField ID="HiddenField2" runat="server" /><asp:HiddenField ID="HiddenField3" runat="server" /><asp:Button ID="Button2" runat="server" CssClass="hiddenButton" onclick="Button2_Click" />Javascript:
function OnClientClose(oWnd, args) { //save the transferred arguments var arg = args.get_argument(); if (arg) { document.getElementById("HiddenField1").value = arg.one; document.getElementById("HiddenField2").value = arg.two; document.getElementById("HiddenField3").value = arg.three; document.getElementById("Button2").click(); }}C#:
protected void Button2_Click(object sender, EventArgs e) { string checkbox1 = HiddenField1.Value; string checkbox2 = HiddenField2.Value; string checkbox3 = HiddenField3.Value; // Your Code }Please provide your full code if this doesn't helps.
Thanks,
Princy.
0
Prashanth
Top achievements
Rank 1
answered on 14 Aug 2012, 07:38 AM
Hi Princy,
This is my Complete code
Parent.aspx:
In Rad Window Properties i have written Navigation: 'child.aspx', OnClientClose: 'OnClientClose'
I dont know how to put JavaScript because it is taking Four Values
Parent.aspx.cs:
child.aspx
Javascript:
No .cs file for child page
This is my Complete code
Parent.aspx:
<telerik:RadWindow ID="RadWindow1" runat="server" MaxHeight="300px" MaxWidth="300px" MinHeight="300px" MinWidth="400px" Modal="True" OpenerElementID="Button3" Title="Select Activities" ToolTip="Select One or More Activities" VisibleStatusbar="False" Width="400px" NavigateUrl="child.aspx" Skin="Default" onclientclose="OnClientClose" ReloadOnShow="True"> </telerik:RadWindow><asp:Button ID="Button1" runat="server" Text="Select Activity" style="height: 26px" onclick="Button1_Click" />I dont know how to put JavaScript because it is taking Four Values
Parent.aspx.cs:
protected void Button1_Click(object sender, EventArgs e) { RadWindow1.VisibleOnPageLoad = true; }child.aspx
<strong>Activities Done</strong> <asp:CheckBoxList ID="CheckBoxList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="Activity" DataValueField="Activity"> </asp:CheckBoxList> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:HumanResourceConnectionString %>" SelectCommand="SELECT [Activity] FROM [tsmActivity]"></asp:SqlDataSource> <asp:Button ID="Button2" OnClientClick="CloseWindow(); return false;" runat="server" Text="Select"/>Javascript:
<script type="text/javascript"> function CloseWindow() { var cur = getra(); var result = document.getElementById('CheckBoxList1').checked; cur.argument = result; cur.close(); } function getra() { var win = null; if (window.radWindow) win = window.radWindow; else if (window.frameElement.radWindow) win = window.frameElement.radWindow; return win; }</script>No .cs file for child page
0
Prashanth
Top achievements
Rank 1
answered on 14 Aug 2012, 07:40 AM
Hi Princy,
Look Into My Code and Please Help me out.
Look Into My Code and Please Help me out.
0
Princy
Top achievements
Rank 2
answered on 17 Aug 2012, 09:37 AM
Hi Prashanth,
You can get the values of checked checkboxes in an array and send it as a Json string as follows.
Child Window
Javascript:
Parent Window
Javascript:
C#:
Hope this helps.
Thanks,
Princy.
You can get the values of checked checkboxes in an array and send it as a Json string as follows.
Child Window
Javascript:
<script type="text/javascript"> function returnToParent() { var oArg = new Object(); var options = document.getElementById("CheckBoxList1").getElementsByTagName('input'); var optionsArray = new Array(); var index = 0; for (i = 0; i < options.length; i++) { var opt = options[i]; if (opt.type == "checkbox") { if (opt.checked) { optionsArray[index] = opt.value; index++; } } } oArg.data = JSON.stringify(optionsArray); var oWnd = GetRadWindow(); oWnd.close(oArg); }</script>Parent Window
Javascript:
<script type="text/javascript">function OnClientClose(oWnd, args){ //get the transferred arguments var arg = args.get_argument(); if (arg) { document.getElementById("HiddenField1").value = arg.data; document.getElementById("Button2").click(); }}</script>C#:
protected void Button2_Click(object sender, EventArgs e){ var jss = new JavaScriptSerializer(); var values = jss.Deserialize<string[]>(HiddenField1.Value);}Hope this helps.
Thanks,
Princy.
0
Prashanth
Top achievements
Rank 1
answered on 21 Aug 2012, 12:33 PM
hi princy,
I looked into your code but there are no textboxes in it...as i told in my 1st post(please look into the attached files) and i want them exactly what it is in that image.....please help me out..
I looked into your code but there are no textboxes in it...as i told in my 1st post(please look into the attached files) and i want them exactly what it is in that image.....please help me out..
0
Accepted
Princy
Top achievements
Rank 2
answered on 23 Aug 2012, 09:16 AM
Hi Prashanth,
One suggestion is that you can add a table control and dynamically add rows and cells to it as follows.
ASPX:
C#:
Thanks,
Princy.
One suggestion is that you can add a table control and dynamically add rows and cells to it as follows.
ASPX:
<asp:Table ID="tblDevelopement" Visible="false" runat="server"></asp:Table>C#:
protected void Button2_Click(object sender, EventArgs e){ var jss = new JavaScriptSerializer(); var values = jss.Deserialize<string[]>(HiddenField1.Value); int pos = Array.IndexOf(values, "Developement"); if(pos > -1) // Checking whether Developement has been Checked { tblDevelopement.Visible = true; TableRow tRowLabel = new TableRow(); TableRow tRowTextBox = new TableRow(); DayOfWeek day = DateTime.Now.DayOfWeek; int days = day - DayOfWeek.Monday; DateTime start = DateTime.Now.AddDays(-days); DateTime end = start.AddDays(6); DateTime loopDate = new DateTime(); loopDate = start; for (int i = 0; i < 7; i++) { TableCell tCellLabel = new TableCell(); TableCell tCellTextBox = new TableCell(); Label lbl = new Label(); lbl.Text = loopDate.Date.ToString("ddd d"); TextBox txt = new TextBox(); txt.ID = "Developement" + i; if (loopDate > DateTime.Now) { txt.Enabled = false; } else if (loopDate < DateTime.Now) { txt.Text = "data"; // Get Data From Database } tCellLabel.Controls.Add(lbl); tCellTextBox.Controls.Add(txt); tRowLabel.Cells.Add(tCellLabel); tRowTextBox.Cells.Add(tCellTextBox); loopDate = loopDate.AddDays(1); } tblDevelopement.Rows.Add(tRowLabel); tblDevelopement.Rows.Add(tRowTextBox); }}Thanks,
Princy.
0
Prashanth
Top achievements
Rank 1
answered on 23 Aug 2012, 12:04 PM
If possible can u send the complete code from scratch...
0
Princy
Top achievements
Rank 2
answered on 24 Aug 2012, 04:37 AM
Hi Prashanth,
Here is the full code that I tried based your scenario.
ParentPage
ASPX:
Javascript:
C#:
Child Page
ASPX:
Javascript:
Thanks,
Princy.
Here is the full code that I tried based your scenario.
ParentPage
ASPX:
<telerik:RadWindowManager ID="RadWindowManager1" ShowContentDuringLoad="false" VisibleStatusbar="false" ReloadOnShow="true" runat="server" Skin="Sunset" EnableShadow="true"> <Windows> <telerik:RadWindow ID="RadWindow1" runat="server" Behaviors="Close" OnClientClose="OnClientClose" NavigateUrl="RvalueSecond.aspx"> </telerik:RadWindow> </Windows></telerik:RadWindowManager><asp:Button ID="Button1" runat="server" Text="Open Window" OnClientClick="return openWin();" /><asp:Table ID="tblDevelopement" Visible="false" runat="server"></asp:Table><asp:HiddenField ID="HiddenField1" runat="server" /><asp:Button ID="Button2" runat="server" CssClass="hiddenButton" onclick="Button2_Click" />Javascript:
<script type="text/javascript"> function openWin() { var oWnd = radopen("RvalueSecond.aspx", "RadWindow1"); return false; } function OnClientClose(oWnd, args) { //get the transferred arguments var arg = args.get_argument(); if (arg) { document.getElementById("HiddenField1").value = arg.data; document.getElementById("Button2").click(); } }</script>protected void Button2_Click(object sender, EventArgs e){ var jss = new JavaScriptSerializer(); var values = jss.Deserialize<string[]>(HiddenField1.Value); int pos = Array.IndexOf(values, "Developement"); if(pos > -1) { tblDevelopement.Visible = true; TableRow tRowLabel = new TableRow(); TableRow tRowTextBox = new TableRow(); DayOfWeek day = DateTime.Now.DayOfWeek; int days = day - DayOfWeek.Monday; DateTime start = DateTime.Now.AddDays(-days); DateTime end = start.AddDays(6); DateTime loopDate = new DateTime(); loopDate = start; for (int i = 0; i < 7; i++) { TableCell tCellLabel = new TableCell(); TableCell tCellTextBox = new TableCell(); Label lbl = new Label(); lbl.Text = loopDate.Date.ToString("ddd d"); TextBox txt = new TextBox(); txt.ID = "Developement" + i; if (loopDate > DateTime.Now) { txt.Enabled = false; } else if (loopDate < DateTime.Now) { txt.Text = "data"; // Get Data From Database } tCellLabel.Controls.Add(lbl); tCellTextBox.Controls.Add(txt); tRowLabel.Cells.Add(tCellLabel); tRowTextBox.Cells.Add(tCellTextBox); loopDate = loopDate.AddDays(1); } tblDevelopement.Rows.Add(tRowLabel); tblDevelopement.Rows.Add(tRowTextBox); }}Child Page
ASPX:
<asp:CheckBoxList ID="CheckBoxList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="id" ></asp:CheckBoxList><asp:Button ID="Submit" runat="server" OnClientClick="returnToParent(); return false;" />Javascript:
<script type="text/javascript"> function GetRadWindow() { var oWindow = null; if (window.radWindow) oWindow = window.radWindow; else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; return oWindow; } function returnToParent() { var oArg = new Object(); var options = document.getElementById("CheckBoxList1").getElementsByTagName('input'); var optionsArray = new Array(); var index = 0; for (i = 0; i < options.length; i++) { var opt = options[i]; if (opt.type == "checkbox") { if (opt.checked) { optionsArray[index] = opt.value; index++; } } } oArg.data = JSON.stringify(optionsArray); var oWnd = GetRadWindow(); oWnd.close(oArg);}</script>Thanks,
Princy.
0
Prashanth
Top achievements
Rank 1
answered on 01 Sep 2012, 07:43 AM
Hi Princy,
The Code which you have given Worked perfectly in a New project. But if i copy the same code and paste in my solution file i am getting an error "Microsoft JScript runtime error: Unable to set value of the property 'value': object is null or undefined". which is located at "document.getElementbyId("TextBox1").value=arg.data; "
The Code which you have given Worked perfectly in a New project. But if i copy the same code and paste in my solution file i am getting an error "Microsoft JScript runtime error: Unable to set value of the property 'value': object is null or undefined". which is located at "document.getElementbyId("TextBox1").value=arg.data; "