Passer des paramètres à un UserControl dans une ModalPopup (Ajax)
Bonjour,
Je désespère d'y arriver!... Je me base sur les 2 articles suivants:
http://www.aspdotnetcodes.com/Ajax_M..._GridView.aspx
http://www.aghausman.net/dotnet/pass...dal-popup.html
J'ai un GridView et je veux que quand on clique sur "modifier", une popup s'affiche avec le formulaire de modification.
Je ne parviens pas à passer les paramètres à mon UserControl...
Ci-dessous mon code :
gestion-parametrage.aspx
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
<script type="text/javascript">
function createXhrObject()
{
if (window.XMLHttpRequest)
return new XMLHttpRequest();
if (window.ActiveXObject)
{
var names = [
"Msxml2.XMLHTTP.6.0",
"Msxml2.XMLHTTP.3.0",
"Msxml2.XMLHTTP",
"Microsoft.XMLHTTP"
];
for(var i in names)
{
try{ return new ActiveXObject(names[i]); }
catch(e){}
}
}
window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
return null; // non supporté
}
request = createXhrObject();
function setupParam(login)
{
alert(login);
var divComm = document.getElementById('<%=PanelPopup.ClientID %>');
divComm.innerHTML = "Please wait processing your request!!!";
var rnd = Math.random() * 1000000;
var url = 'ControlCaller.aspx?Login=' + login;
alert(url);
request.open("GET", url, true);
request.onreadystatechange = GetResultComplete;
request.send(null);
}
function GetResultComplete() {
if (request.readyState == 4) {
if (request.status == 200) {
var divComm = document.getElementById('<%=PanelPopup.ClientID %>');
if (divComm) {
alert(request.responseText);
divComm.innerHTML = request.responseText;
}
}
}
}
</script>
<form id="Form1" action="" runat="server">
<asp:GridView ID="GridView1" Runat="server" DataSourceID="ObjectDataSource1" AutoGenerateColumns="False"
AllowPaging="True" DataKeyNames="Login,EmpCode" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundField HeaderText="Login" DataField="Login" SortExpression="LOGIN"/>
<asp:BoundField HeaderText="Code employé" DataField="EmpCode" SortExpression="EMPCODE" />
<asp:HyperLinkField Text="Modifier" DataNavigateUrlFields="Login" DataNavigateUrlFormatString="~/UI/Parametrage/fiche-utilisateur.aspx?login={0}" Target="_blank" />
<asp:TemplateField>
<ItemTemplate>
<ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
PopupControlID="PanelPopup"
TargetControlID="lnkModifier"
BackgroundCssClass="modalBackground">
</ajaxToolkit:ModalPopupExtender>
<asp:LinkButton ID="lnkModifier" runat="server" Text="Modifier"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server"
CausesValidation="False"
CommandName="Delete"
OnClientClick="return confirm('Etes-vous sûr de vouloir supprimer cet utilisateur ?');"
Text="Supprimer">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<AlternatingRowStyle BackColor="AliceBlue" />
<RowStyle BackColor="Azure" />
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" Runat="server" TypeName="BLL.UserBLL"
SelectMethod="GetUsers" DeleteMethod="DeleteUser" UpdateMethod="UpdateUser"
DataObjectTypeName="BusinessObjects.UserBO" SortParameterName="sortExpression">
</asp:ObjectDataSource>
</form> |
gestion-parametrage.aspx
Code:
1 2 3 4 5 6 7 8 9 10 11
|
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton linkButton = (LinkButton)e.Row.FindControl("lnkModifier");
linkButton.Attributes.Add("onclick", "setupParam('" + GridView1.DataKeys[e.Row.RowIndex].Value + "')");
}
} |
ControlCaller.aspx:
Code:
1 2 3 4
|
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ControlCaller.aspx.cs" Inherits="UI_Intervention_ControlCaller" %>
<%@ Register Src="WebUserControl.ascx" TagName="Control" TagPrefix="uc2" %>
<uc2:Control ID="Control1" runat="server"/> |
WebUserControl.ascx.cs:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
public partial class UI_Intervention_WebUserControl : System.Web.UI.UserControl
{
private string _login;
private string _codeEmp;
private string _instance;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Response.Write("<input type='text' value='"+_login+"'/>");
}
}
public string Login
{
get { return _login; }
set { _login = value; }
}
public string CodeEmp
{
get { return _codeEmp; }
set { _codeEmp = value; }
}
public string Instance
{
get { return _instance; }
set { _instance = value; }
}
} |
Je n'arrive pas à voir ce qui me manque pour récupérer mon paramètre login!
Please help me!
Merci ;)