在父窗体有一个gridview,点击gridview 某列的一个按钮弹出一个窗口包含一个gridview可以选择多行,把选择行的值传到父窗体的一个文本框中,

HUOWEI 2011-11-20 06:12:52
点击的添加按钮在父窗体有一个gridview就动态添加一行,点击gridview 某列的一个按钮弹出一个窗口包含一个gridview可以选择多行,把选择行的值传到父窗体的一个文本框中,问题是选择的值我可以得到,怎么把值传到父窗体的Gridview的文本框中,而且再点添加按钮时不会被改变?
...全文
278 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
安宁 2011-11-22
  • 打赏
  • 举报
回复
WebForm间的传值 可以有几种方式
Session ViewState URL Cookie

不过照你说的这样的功能 并不建议你使用二个页面来进行传值 这样使工作复杂化
你可以在同一页面中完成你的功能

建议方法 在页面中隐藏一个DIV,即当做你要弹出的窗体 这样就可以在同一窗体完成你需要的功能
当然要实现这种方式需要JS,Ajax等技术的支持
孟子E章 2011-11-21
  • 打赏
  • 举报
回复
点击的添加按钮在父窗体有一个gridview就动态添加一行,这些动作是js实现的添加还是服务器实现的添加,这些都没有描述清楚
孟子E章 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 huowei 的回复:]

引用 3 楼 net_lover 的回复:
x = windows.showModalDialog("xx.aspx")
xx.aspx里面。使用window.returnValue="xxxx"

这样,就可以把xxx传回给x
x就可以对父窗口进行操作了

谢谢,我目前是用session 保存值,如果我再点击添加按钮值会添加到第二行的列中,所以现在非常郁闷。
[/Quote]
showModalDialog传值无需Session。
HUOWEI 2011-11-21
  • 打赏
  • 举报
回复
有人帮忙吗?自己顶!
HUOWEI 2011-11-21
  • 打赏
  • 举报
回复
<asp:UpdatePanel ID="UpdatePanel3" runat="server" ChildrenAsTriggers="true" UpdateMode="Always"
RenderMode="Block">
<ContentTemplate>
<div align="right">
<asp:ImageButton ID="btnAddCar" runat="server" Text="添加车辆" ImageUrl="~/Images/addcn.png"
OnClick="btnAddCar_Click" /></div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" Height="0px"
Width="0px" Style="display: none" />
<asp:GridView ID="gvCar" runat="server" Width="100%" AutoGenerateColumns="False"
OnRowDataBound="gvCar_RowDataBound" OnSelectedIndexChanged="gvCar_SelectedIndexChanged">
<AlternatingRowStyle CssClass="altrow" />
<Columns>
<asp:TemplateField HeaderText="编号">
<HeaderTemplate>
<label>
编号</label><span style="color: Red">*</span></HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtCarCode" runat="server" Width="60"></asp:TextBox>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="型号">
<HeaderTemplate>
<label>
型号</label><span style="color: Red">*</span></HeaderTemplate>
<ItemTemplate>
<asp:DropDownList ID="drCarType" runat="server" Width="80">
</asp:DropDownList>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="充电方式">
<HeaderTemplate>
<label>
充电方式</label><span style="color: Red">*</span></HeaderTemplate>
<ItemTemplate>
<asp:DropDownList ID="drWay" runat="server" Width="60">
</asp:DropDownList>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="插头类型">
<HeaderTemplate>
<label>
插头类型</label><span style="color: Red">*</span></HeaderTemplate>
<ItemTemplate>
<asp:DropDownList ID="drCTpye" runat="server" Width="60">
</asp:DropDownList>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="终端标识">
<HeaderTemplate>
<label>
终端标识</label><span style="color: Red">*</span></HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtCNo" runat="server" Width="60"></asp:TextBox>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="电池容量">
<HeaderTemplate>
<label>
电池容量</label><span style="color: Red">*</span></HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtSum" runat="server" Width="60" onKeyUp="value=value.replace(/\D+/g,'')"></asp:TextBox><asp:Label
ID="Label1" runat="server" Text="Ah"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="电池箱设定">
<ItemTemplate>
<asp:Label ID="lbSet" runat="server" Text="Label" ></asp:Label>
<%--<asp:TextBox ID="txtSet" runat="server" Width="60"></asp:TextBox>--%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:ImageButton ID="btnAddBox" runat="server" Text="电池箱规格" ImageUrl="~/Images/dcx.png"
ToolTip="添加电池箱规格" CommandName="添加电池箱规格" CommandArgument='<%#Container.DataItemIndex %>'
OnCommand="btnAddBox_Command" />
<asp:ImageButton ID="btnCancelCar" runat="server" ImageUrl="~/Images/deleteIcon.png"
ToolTip="删除" CommandName="删除" OnClientClick="return confirm('是否删除?')" OnCommand="btnCancelCar_Command" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
没有数据</EmptyDataTemplate>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
第三个窗体

protected void btnSave_Click(object sender, EventArgs e)
{

foreach (GridViewRow row in gvCellbox.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox ch = (CheckBox)row.FindControl("ckSelect");
Label lbSize = (Label)row.FindControl("lbSize");
TextBox txtNumber = (TextBox)row.FindControl("txtNumber");
if (ch.Checked)
{
string size = lbSize.Text;
int number = int.Parse(txtNumber.Text.Trim());//'ClientEdit.aspx?id=" + id + "&status=" + PageStatus + "'

Setbox += size +","+ number;
// Session["size"] = Session["size"] + size + "," + Session["number"] + number.ToString() ;

}
}
}
WebCommon.showAlert(UpdatePanel3, "1");
}
[/code]
值我可以得到,现在是父窗体怎么接收我得到了的setbox?
HUOWEI 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 net_lover 的回复:]
点击的添加按钮在父窗体有一个gridview就动态添加一行,这些动作是js实现的添加还是服务器实现的添加,这些都没有描述清楚
[/Quote]不好意思,
这些都是用服务器实现的,代码如下:[code=C#] /// <summary>
/// 添加车辆表
/// </summary>
/// <returns></returns>
private DataTable GetDataTableCar()
{
DataTable dataTableCar = new DataTable();
dataTableCar.Columns.Add("BH", typeof(String));
dataTableCar.Columns.Add("XH", typeof(String));
dataTableCar.Columns.Add("CDFS", typeof(String));
dataTableCar.Columns.Add("CDCTLY", typeof(String));
dataTableCar.Columns.Add("CZZDBZ", typeof(String));
dataTableCar.Columns.Add("DCZRL", typeof(String));
dataTableCar.Columns.Add("DCXXH", typeof(String));
if (gvCar.Rows.Count == 0)
{
dataTableCar.Rows.Add(dataTableCar.NewRow());
}
foreach (GridViewRow row in this.gvCar.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
TextBox txtCarCode = row.FindControl("txtCarCode") as TextBox;
DropDownList drCarType = row.FindControl("drCarType") as DropDownList;
DropDownList drWay = row.FindControl("drWay") as DropDownList;
DropDownList drCTpye = row.FindControl("drCTpye") as DropDownList;
TextBox txtCNo = row.FindControl("txtCNo") as TextBox;
TextBox txtSum = row.FindControl("txtSum") as TextBox;
Label txtSet = row.FindControl("lbSet") as Label;
if (setbox != string.Empty)
{
txtSet.Text = Request.QueryString["setbox"].ToString();
}

else
{
txtSet.Text = "";
}
object[] value = { txtCarCode.Text, drCarType.SelectedValue, drWay.SelectedValue, drCTpye.SelectedValue, txtCNo.Text, txtSum.Text, txtSet.Text };
dataTableCar.Rows.Add(value);

}
}

return dataTableCar;

}
/// <summary>
/// 添加车辆
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAddCar_Click(object sender, ImageClickEventArgs e)
{

DataTable dt = this.GetDataTableCar();
DataRow dr = dt.NewRow();
//添加一空行
dt.Rows.Add(dr);
this.gvCar.DataSource = dt;
gvCar.DataBind();
}
/// <summary>
/// 车辆
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gvCar_RowDataBound(object sender, GridViewRowEventArgs e)
{
DictionaryService dictionaryService = new DictionaryService();
DictionaryEntity dictionaryEntity = new DictionaryEntity();

if (e.Row.RowType == DataControlRowType.DataRow)
{
TextBox txtCarCode = e.Row.FindControl("txtCarCode") as TextBox;
DropDownList drCarType = e.Row.FindControl("drCarType") as DropDownList;
DropDownList drWay = e.Row.FindControl("drWay") as DropDownList;
DropDownList drCTpye = e.Row.FindControl("drCTpye") as DropDownList;
TextBox txtCNo = e.Row.FindControl("txtCNo") as TextBox;
TextBox txtSum = e.Row.FindControl("txtSum") as TextBox;
Label lbSet = e.Row.FindControl("lbSet") as Label;
//TextBox txtSet = e.Row.FindControl("txtSet") as TextBox;
txtCarCode.Text = ((DataRowView)e.Row.DataItem)["BH"].ToString();
if (drCarType != null)
{
int carid = (int)EnumType.车辆型号;
drCarType.DataSource = dictionaryService.GetByEnumType(carid, dictionaryEntity);
drCarType.DataTextField = "MC";
drCarType.DataValueField = "ID";
drCarType.DataBind();
drCarType.Items.Insert(0, "请选择");

if (DataBinder.Eval(e.Row.DataItem, "XH") != null)
{
drCarType.SelectedValue = DataBinder.Eval(e.Row.DataItem, "XH").ToString();
}
else
{
drCarType.SelectedIndex = 0;
}
}
if (drWay != null)
{
int fsid = (int)EnumType.车辆充电方式;
drWay.DataSource = dictionaryService.GetByEnumType(fsid, dictionaryEntity);
drWay.DataTextField = "MC";
drWay.DataValueField = "ID";
drWay.DataBind();
drWay.Items.Insert(0, "请选择");
if (DataBinder.Eval(e.Row.DataItem, "CDFS") != null)
{
//drWay.SelectedValue = DataBinder.Eval(e.Row.DataItem, "CDFS").ToString();
drWay.SelectedValue = ((DataRowView)e.Row.DataItem)["CDFS"].ToString();
}
else
{
drWay.SelectedIndex = 0;
}

}
if (drCTpye != null)
{
int typeid = (int)EnumType.充电插头类型;
drCTpye.DataSource = dictionaryService.GetByEnumType(typeid, dictionaryEntity);
drCTpye.DataTextField = "MC";
drCTpye.DataValueField = "ID";
drCTpye.DataBind();
drCTpye.Items.Insert(0, "请选择");
//drCTpye.SelectedValue = ((DataRowView)e.Row.DataItem)["drCTpye"].ToString();
if (DataBinder.Eval(e.Row.DataItem, "CDCTLY") != null)
{
// drCTpye.SelectedValue = DataBinder.Eval(e.Row.DataItem, "CDCTLY").ToString();
drCTpye.SelectedValue = ((DataRowView)e.Row.DataItem)["CDCTLY"].ToString();
}
else
{
drCTpye.SelectedIndex = 0;
}
}
txtCNo.Text = ((DataRowView)e.Row.DataItem)["CZZDBZ"].ToString();
txtSum.Text = ((DataRowView)e.Row.DataItem)["DCZRL"].ToString();
//txtSet.Text = ((DataRowView)e.Row.DataItem)["DCXXH"].ToString();
lbSet.Text = ((DataRowView)e.Row.DataItem)["DCXXH"].ToString();
//txtCNo.Text = ((DataRowView)e.Row.DataItem)["SL"].ToString();
}
}
/// <summary>
/// 选择电池箱规格
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAddBox_Command(object sender, CommandEventArgs e)
{
ScriptManager.RegisterStartupScript(UpdatePanel2, this.GetType(), "newmileageprice", "<script type='text/javascript'>JqueryDialog.Open1('添加电池箱规格设定', 'CellBox.aspx?setbox=" + setbox + "', 700, 300,false,false,true);</script>", false);

}
html

LMAOhuaNL 2011-11-20
  • 打赏
  • 举报
回复
用winform界面传值应该可以吧
HUOWEI 2011-11-20
  • 打赏
  • 举报
回复
我是有三个窗体gidview是放第二个窗体,弹出来第三个窗体把值传第二个窗体的gridview里面的一行某列,谢谢各位,最好给点代码哦!
HUOWEI 2011-11-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiaoqijun 的回复:]
http://zhidao.baidu.com/question/278534488.html
参考这个吧。。
Grid点击用单元格的单击或双击事件。
[/Quote]
我是webform的,谢谢!
HUOWEI 2011-11-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 net_lover 的回复:]
x = windows.showModalDialog("xx.aspx")
xx.aspx里面。使用window.returnValue="xxxx"

这样,就可以把xxx传回给x
x就可以对父窗口进行操作了
[/Quote]
谢谢,我目前是用session 保存值,如果我再点击添加按钮值会添加到第二行的列中,所以现在非常郁闷。
  • 打赏
  • 举报
回复
3楼的方法可以的


你也可以使用 windows.showModalDialog("xx.aspx?id="+id)

直接通过传参的方式,,就可以获得值了!
zhouxingyu896 2011-11-20
  • 打赏
  • 举报
回复
支持2楼的
帮顶
孟子E章 2011-11-20
  • 打赏
  • 举报
回复
x = windows.showModalDialog("xx.aspx")
xx.aspx里面。使用window.returnValue="xxxx"

这样,就可以把xxx传回给x
x就可以对父窗口进行操作了
安宁 2011-11-20
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/question/278534488.html
参考这个吧。。
Grid点击用单元格的单击或双击事件。
HUOWEI 2011-11-20
  • 打赏
  • 举报
回复
自己顶起来,谢谢各位,请帮忙!

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧