首先构建json 数据
StringBuilder sb = new StringBuilder();
sb.Append("[");
sb.Append("{");
sb.AppendFormat("id:\"{0}\",", id);
sb.AppendFormat("FLNodeName:\"{0}\",", tx_wzfl.Text);
sb.AppendFormat("FLNodeid:\"{0}\",", hinWzflId.Value);
sb.AppendFormat("MC:\"{0}\",", tx_mc.Text);
sb.AppendFormat("PP:\"{0}\",", tx_pp.Text);
sb.AppendFormat("GGXH:\"{0}\",", tx_ggxh.Text);
sb.AppendFormat("DW:\"{0}\",", tx_dw.Text);
sb.AppendFormat("XQSL:\"{0}\",", tx_xqsl.Text);
sb.AppendFormat("YJDJ:\"{0}\",", tx_yjdj.Text);
sb.AppendFormat("YJZJ:\"{0}\",", tx_yjzj.Text);
sb.AppendFormat("XQYY:\"{0}\",", tx_xqyy.Text);
sb.AppendFormat("GYS:\"{0}\",", tx_gys.Text);
sb.AppendFormat("GYSid:\"{0}\"", hidgysid.Value == "" ? "0" : hidgysid.Value);
sb.Append("}");
sb.Append("]");
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "jsonData", "__doSelected('" + sb.ToString() + "');", true);
然后js回传信息
//回传信息
function __doSelected(info) {
var win = window.opener;
if (win != null && win != undefined) {
if (win.__doSetInfo != null && win.__doSetInfo != undefined) {
win.__doSetInfo(info);
}
}
window.close();
}
doSetInfo函数是弹出框页面的js方法。
----
这是弹出框页面的js了
function __doSetInfo(info) {
if (info != null && info != '') {
document.getElementById("hnwzvalue").value = info;
document.getElementById("btnRefresh").click();
}
}
获取到json 数据后 放到一个隐藏域去,然后让一个隐藏按钮的点击事件触发
首先构造一个类,用来传递数据的
public class returnJsion
{
public string ID { get; set; }
public string FLNodeName { get; set; }
public string FLNodeid { get; set; }
public string MC { get; set; }
public string PP { get; set; }
public string GGXH { get; set; }
public string DW { get; set; }
public string XQSL { get; set; }
public string YJDJ { get; set; }
public string YJZJ { get; set; }
public string XQYY { get; set; }
public string GYS { get; set; }
public string GYSid { get; set; }
}
protected void btnRefresh_Click(object sender, EventArgs e)
{
DataRow drtmp;
string json = hnwzvalue.Value;
if (json == "[object Object]")
{
return;
}
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
List<returnJsion> _returnJsion = jsonSerializer.Deserialize<List<returnJsion>>(json);
if (dtList == null)
{
dtList = Init_Tab();
}
dtList.AcceptChanges();
foreach (returnJsion rj in _returnJsion)
{
drtmp = dtList.NewRow();
drtmp["ID"] = rj.ID;
drtmp["FLNodeName"] = rj.FLNodeName;
drtmp["FLNodeid"] = rj.FLNodeid;
drtmp["MC"] = rj.MC;
drtmp["PP"] = rj.PP;
drtmp["GGXH"] = rj.GGXH;
drtmp["DW"] = rj.DW;
drtmp["XQSL"] = rj.XQSL;
drtmp["YJDJ"] = rj.YJDJ == "" ? "0" : rj.YJDJ;
drtmp["YJZJ"] = rj.YJZJ == "" ? "0" : rj.YJZJ;
drtmp["XQYY"] = rj.XQYY;
drtmp["GYS"] = rj.GYS;
drtmp["GYSid"] = rj.GYSid;
dtList.Rows.Add(drtmp);
dtList.AcceptChanges();
}
this.dvList.DataSource = dtList;
this.dvList.DataBind();
}
//重新定义列表项
public DataTable Init_Tab()
{
DataTable dttmp = new DataTable();
dttmp.Columns.Add("ID", typeof(string)); //ID
dttmp.Columns.Add("FLNodeName", typeof(string));
dttmp.Columns.Add("FLNodeid", typeof(string));
dttmp.Columns.Add("MC", typeof(string));
dttmp.Columns.Add("PP", typeof(string));
dttmp.Columns.Add("GGXH", typeof(string));
dttmp.Columns.Add("DW", typeof(string));
dttmp.Columns.Add("XQSL", typeof(string));
dttmp.Columns.Add("YJDJ", typeof(string));
dttmp.Columns.Add("YJZJ", typeof(string));
dttmp.Columns.Add("XQYY", typeof(string));
dttmp.Columns.Add("GYS", typeof(string));
dttmp.Columns.Add("GYSid", typeof(string));
return dttmp;
}
当你进到这个页面的时候 如果list有数据你要进行绑定
dtList = xtDAO.SqlText.ExecuteDataset(selectsql, parameters.ToArray()).Tables[0];
删除呢其实就删row的
protected void btnDel_wz_Click(object sender, EventArgs e)
{
string strID = hnDeleteId.Value;
if (strID.Trim().Length > 0)
{
DataRow[] dr = dtList.Select("id in (" + strID + ")");
if (dr != null && dr.Length > 0)
{
for (int i = 0; i < dr.Length; i++)
{
dtList.Rows.Remove(dr[i]);
}
}
}
dtList.AcceptChanges();
dvList.DataSource = dtList.DefaultView;
dvList.DataBind();
}
为了不用判断你这个list的数据哪些是新增的那些是更新的,就保存前delete所有,然后重新保存所有,这样就不用判断了!