现在的位置: 首页 > 综合 > 正文

[转] 使用javascript做页面间传值

2012年10月28日 ⁄ 综合 ⁄ 共 2715字 ⁄ 字号 评论关闭

大家都知道,Asp.Net中页面传值主要可以用Session、Application、Post、Get传值。但是也可以通过javascript脚本实现页面传值。因为大家经常在网页上看到,比如叫你选择日期啊,负责人等,它们有时候就是一个图标,然后,你可以点击这个图标,弹出一个小页面,然后你就可以在这个小页面里进行选择了。当然,这也可以用下拉列表等做的,今天,我给大家介绍一个使用javascript做页面传值。

第一个页面有一项是负责人,然后后面是一个TextBox,TextBox后面是一个小图标,点击它就可以在一个小页面里进行选择其中一个负责人,然后这个负责人的名字,就显示在第一个页面的TextBox中。

    选择后效果图:

第一个页面前台代码:

脚本代码

<script language="javascript">

function showmanager()

{

var w=window.open('ManagerSelect.aspx','新的页面','scrollbars=yes,resizable=no,height=300,width=400');

}

</script>

图片做成一个链接

<a onmouseover="window.status='选择负责人';return true;" onmouseout="window.status='';return true;"

href="javascript:showmanager();"><IMG style="Z-INDEX: 103; LEFT: 344px; POSITION: absolute; TOP: 96px" alt="选择负责人" src="images/tt111.jpg"></a>

第二个页面

前台:

Javascript代码

function setUser()

{

window.opener.Form1.TextBox1.value = document.Form1.TextBox1.value;

window.close();

//return true;

}

function closeWin()

{

window.close();

}

DataGrid代码

<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 40px; POSITION: absolute; TOP: 16px" runat="server"

Width="328px" Height="128px" PageSize="3" AllowPaging="True" AutoGenerateColumns="False">

<SelectedItemStyle BackColor="Fuchsia"></SelectedItemStyle>

<Columns>

<asp:TemplateColumn HeaderText="用户名">

<ItemTemplate>

<asp:LinkButton id="LinkButton1" Text='<%# DataBinder.Eval(Container, "DataItem.LastName") %>' runat="server" >LinkButton</asp:LinkButton>

</ItemTemplate>

</asp:TemplateColumn>

<asp:BoundColumn DataField="FirstName" HeaderText="姓"></asp:BoundColumn>

<asp:BoundColumn DataField="BirthDate" HeaderText="生日"></asp:BoundColumn>

</Columns>

<PagerStyle Mode="NumericPages"></PagerStyle>

</asp:DataGrid>

后台代码:

static DataSet ds;

private void Page_Load(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

this.BtnConfirm.Attributes.Add("onclick","setUser()");

this.BtnClose.Attributes.Add("onclick", "closeWin()");

if(!this.IsPostBack)

{

this.bindtoDG();

}

}

//数据绑定到DataGrid中

private void bindtoDG()

{

SqlConnection con=new

SqlConnection("server=.;uid=sa;pwd=sa;database=Northwind");

con.Open();

SqlDataAdapter sda=new SqlDataAdapter();

sda.SelectCommand=new SqlCommand("select * from Employees",con);

DataSet ds1=new DataSet();

sda.Fill(ds1);

this.DataGrid1.DataSource=ds1.Tables[0].DefaultView;

ds=ds1;

this.DataBind();

con.Close();

}

//换页

private void DataGrid1_PageIndexChanged(object source,

System.Web.UI.WebControls.DataGridPageChangedEventArgs e)

{

this.DataGrid1.CurrentPageIndex=e.NewPageIndex;

this.bindtoDG();

}

//选择一项后读取其中的数据

private void DataGrid1_ItemCommand(object source,

System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

if((int)e.Item.ItemIndex<0) return;//没有选择时返回

this.DataGrid1.SelectedIndex=e.Item.ItemIndex;

//此页面的TextBox1用来存放名字 用来传给上一个页面的TextBox1中

this.TextBox1.Text=ds.Tables[0].Rows[(int)e.Item.ItemIndex+this.DataGr

id1.CurrentPageIndex*this.DataGrid1.PageSize]["LastName"].ToString();

}

抱歉!评论已关闭.