0

我有一个客户主页,我需要在其中为客户选择位置。为了选择一个位置,我们设计了一个弹出页面,该页面有一个显示所有位置的网格。一旦用户对该位置进行拍照,该特定位置应返回到主页。

位置对象包含字段 - LocId,LocName,LocState,LocCountry,PinCode 。整个位置对象应该返回到主页而不是单个值。

我打开位置的代码是

<asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="../Content/Images/search.png" Height="21px" ToolTip="Search Location" Width="21px"
                        OnClientClick="ShowLocation();" />

function ShowLocation() {
    window.showModalDialog('../StandardLookups/Location.aspx', '_blank', 'dialogWidth:820px; dialogHeight:400px; dialogLeft:250px; dialogTop:250px;status:no; scroll:no; help:no; resizable:no,edge: Raised,doPostBackAfterCloseCallback: false,postBackElementId: null');

}

用户选择行后弹出窗口中的代码

 protected void btnSelect_Click(object sender, EventArgs e)
    {
        List<object> locationValues = gvLocationLookup.GetSelectedFieldValues(new string[] { "LocId", "LocName", "LocState","LocCountry","PinCode" });

        var locationValue = (object[])locationValues[0];

        var location= new Location
        {
            LocId = (int?)locationValue[0],
            LocName = (string)locationValue[1],
            LocState = (string)locationValue[2]
            LocCountry = (string)locationValue[3]
            PinCode =   (string)locationValue[4]
        };
        Session["SELECTED_LOCATION"] = location;
        Response.Write("<script> window.opener.location.reload(false); window.close();</" + "script>");
        Response.End();
    }

目前我使用会话值来移动值。有没有更好的方法?

4

2 回答 2

0

您可以在此处查看适合您需求的方法。

http://msdn.microsoft.com/en-us/library/6c3yckfw%28v=vs.100%29.aspx

于 2013-07-26T06:23:06.937 回答
0

我以前创建过这样的系统,只使用客户端代码(javascript,没有 C#)。要求是,在填写表格时,可以在弹出窗口中选择特定值(例如位置)。在弹出窗口中单击该值后,父页面会通过 javascript 接收此信息,然后弹出窗口会自行关闭。

请注意,父页面必须有需要填写的字段。在我的例子中,它是一个自动完成文本框 (=FieldName) 和一个链接的 HiddenField (=FieldName_key),它保存文本框中文本的唯一键。

function confirmSelection(code, key)
{
    try {
        window.opener.document.getElementById('<%= FieldName %>').value = code;
        window.opener.document.getElementById('<%= FieldName %>_key').value = key;
        window.close();
    }
    catch (e) {window.close();}
}

此客户端脚本(与 C# 脚本相反)的另一个好处是您不必重新加载父页面,这会干扰您的用户的工作。

于 2013-07-26T07:15:36.940 回答