这个是前台的绑定
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound" >
<HeaderTemplate>
<table border="0" class="style1" cellpadding="0" cellspacing="0">
<tr style="color:Black;background-color:#ECECEC;font-weight:bold;">
<td width="10%">WP No& WPName</td>
<td width="3%"></td>
<td width="12%">Vendor No</td>
<td width="15%">Company Name</td>
<td width="10%">Tel</td>
<td width="5%">Contact</td>
<td width="7%">Type</td>
<td width="10%">Evaluation</td>
<td width="15%">Vendor Source</td>
<td width="8%">Warning</td>
<td width="10%" id="td1" runat="server">Operate</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table border="0" class="style1">
<tr style="color:Black;background-color:#ECECEC;">
<td colspan="12">
<%#Eval("PackageNumber")%> <%#Eval("Description")%>
<asp:HiddenField ID="hf_workpackageID" runat="server" Value='<%#Eval("WorkPackageID") %>' />
</td>
</tr>
</table>
<asp:Repeater ID="Repeater2" runat="server" OnItemDataBound="Repeater2_ItemDataBound">
<ItemTemplate>
<table id="tabtest" class="style1">
<tr>
<td width="10%"> </td>
<td width="3%"><asp:CheckBox ID="chk" runat="server" /><asp:HiddenField ID="hf_ID" runat="server" Value='<%#Eval("SRMVendorID") %>'/></td>
<td width="12%"><%#Eval("VendorNumber")%></td>
<td width="15%"><%#Eval("CompanyName")%></td>
<td width="10%"><%#Eval("BusinessPhoneNumber")%></td>
<td width="5%"><%#Eval("FirstName")%></td>
<td width="7%"><%#Eval("CompanyType")%></td>
<td width="10%"><a href="../Demo/VendorEvaluationSummary.aspx" target="_blank"><%#Eval("EvaluationScore")%></a></td>
<td width="15%"><%#Eval("AddedBy")%></td>
<td width="8%"><%#GetWarningList(Eval("SRMWarningListID").ToString())%></td>
<td width="10%">
<asp:HyperLink ID="lbtnDetails" runat="server" Target="_blank">Detail</asp:HyperLink></td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
后台cs代码
protected void Page_Load(object sender, EventArgs e)
{
HiddenField1.Value = Request["Task"] == null ? "" : Request["Task"].ToString();
if (!IsPostBack)
{
if (HiddenField1.Value.Equals("DraftVendorList"))
{
initGrid();
}
}
} protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
Repeater rep = (Repeater)e.Item.FindControl("Repeater2");
HiddenField hf = (HiddenField)e.Item.FindControl("hf_workpackageID");
if (HiddenField1.Value.Equals("DraftVendorList"))
{
DataTable tb = bll.GetGridVendorIn(hf.Value);
rep.DataSource = tb;
rep.DataBind();
}
}
}现在的问题从另外一个页面传来了一个ID给repeater2里面增加一行数据,这行数据暂时不保存到数据库中,因为repeatger1好像一旦重新绑定的话,传过来的这行数据就会丢掉,请问各位我该如何实现啊
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound" >
<HeaderTemplate>
<table border="0" class="style1" cellpadding="0" cellspacing="0">
<tr style="color:Black;background-color:#ECECEC;font-weight:bold;">
<td width="10%">WP No& WPName</td>
<td width="3%"></td>
<td width="12%">Vendor No</td>
<td width="15%">Company Name</td>
<td width="10%">Tel</td>
<td width="5%">Contact</td>
<td width="7%">Type</td>
<td width="10%">Evaluation</td>
<td width="15%">Vendor Source</td>
<td width="8%">Warning</td>
<td width="10%" id="td1" runat="server">Operate</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table border="0" class="style1">
<tr style="color:Black;background-color:#ECECEC;">
<td colspan="12">
<%#Eval("PackageNumber")%> <%#Eval("Description")%>
<asp:HiddenField ID="hf_workpackageID" runat="server" Value='<%#Eval("WorkPackageID") %>' />
</td>
</tr>
</table>
<asp:Repeater ID="Repeater2" runat="server" OnItemDataBound="Repeater2_ItemDataBound">
<ItemTemplate>
<table id="tabtest" class="style1">
<tr>
<td width="10%"> </td>
<td width="3%"><asp:CheckBox ID="chk" runat="server" /><asp:HiddenField ID="hf_ID" runat="server" Value='<%#Eval("SRMVendorID") %>'/></td>
<td width="12%"><%#Eval("VendorNumber")%></td>
<td width="15%"><%#Eval("CompanyName")%></td>
<td width="10%"><%#Eval("BusinessPhoneNumber")%></td>
<td width="5%"><%#Eval("FirstName")%></td>
<td width="7%"><%#Eval("CompanyType")%></td>
<td width="10%"><a href="../Demo/VendorEvaluationSummary.aspx" target="_blank"><%#Eval("EvaluationScore")%></a></td>
<td width="15%"><%#Eval("AddedBy")%></td>
<td width="8%"><%#GetWarningList(Eval("SRMWarningListID").ToString())%></td>
<td width="10%">
<asp:HyperLink ID="lbtnDetails" runat="server" Target="_blank">Detail</asp:HyperLink></td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
后台cs代码
protected void Page_Load(object sender, EventArgs e)
{
HiddenField1.Value = Request["Task"] == null ? "" : Request["Task"].ToString();
if (!IsPostBack)
{
if (HiddenField1.Value.Equals("DraftVendorList"))
{
initGrid();
}
}
} protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
Repeater rep = (Repeater)e.Item.FindControl("Repeater2");
HiddenField hf = (HiddenField)e.Item.FindControl("hf_workpackageID");
if (HiddenField1.Value.Equals("DraftVendorList"))
{
DataTable tb = bll.GetGridVendorIn(hf.Value);
rep.DataSource = tb;
rep.DataBind();
}
}
}现在的问题从另外一个页面传来了一个ID给repeater2里面增加一行数据,这行数据暂时不保存到数据库中,因为repeatger1好像一旦重新绑定的话,传过来的这行数据就会丢掉,请问各位我该如何实现啊
这个页面有一个按钮可以打开另一个页面,在打开的页面里面选择信息,关闭的时候会传给第一个页面
function SelectVendor() {
var txt = OpenModalDialog('PreQual/SelectedVendor.aspx', '800px', '480px');
document.getElementById("<%=hf_vendorID.ClientID %>").value = txt[0];
document.getElementById("<%=HiddenField2.ClientID %>").value = txt[1];
document.getElementById("<%=btnHidden_BianHao.ClientID%>").click();
} 这个是第二个页面里面的关闭之前调用的JS
function getAllRowValue(grdId, chkIdPart) {
var tbl = document.getElementById('<%=gridworkpage.ClientID %>');
var chkList;
var txt = new Array(2);
txt[0] = "";
txt[1] = "";
for (var i = 0; i < tbl.rows.length; i++) {
chkList = tbl.rows[i].getElementsByTagName("input");
for (var j = 0; j < chkList.length; j++) { if (chkList[j].type == "checkbox" && chkList[j].checked) {
txt[0]+=getRowValue(chkList[j])+",";
break;
}
}
}
txt[1]=document.getElementById('<%=hf_VendorID .ClientID%>').value;
window.returnValue = txt;
window.close();
}