void RenderBorrow( LibraryApplication app, SessionInfo sessioninfo, XmlDocument dom) { string strReaderType = DomUtil.GetElementText(dom.DocumentElement, "readerType"); // 获得日历 string strError = ""; Calendar calendar = null; int nRet = app.GetReaderCalendar(strReaderType, out calendar, out strError); if (nRet == -1) { this.SetBorrowDebugInfo(strError); calendar = null; } // 借阅的册 PlaceHolder borrowinfo = (PlaceHolder)this.FindControl("borrowinfo"); // 清空集合 this.BorrowBarcodes = new List<string>(); string strReaderBarcode = DomUtil.GetElementText(dom.DocumentElement, "barcode"); XmlNodeList nodes = dom.DocumentElement.SelectNodes("borrows/borrow"); this.BorrowLineCount = nodes.Count; for (int i = 0; i < nodes.Count; i++) { PlaceHolder line = (PlaceHolder)borrowinfo.FindControl("borrowinfo_line" + Convert.ToString(i)); if (line == null) { Control insertpos = borrowinfo.FindControl("borrowinfo_insertpos"); line = NewBorrowLine(insertpos.Parent, i, insertpos); // this.BorrowLineCount++; } line.Visible = true; LiteralControl left = (LiteralControl)line.FindControl("borrowinfo_line" + Convert.ToString(i) + "left"); CheckBox checkbox = (CheckBox)line.FindControl("borrowinfo_line" + Convert.ToString(i) + "checkbox"); LiteralControl right = (LiteralControl)line.FindControl("borrowinfo_line" + Convert.ToString(i) + "right"); XmlNode node = nodes[i]; string strBarcode = DomUtil.GetAttr(node, "barcode"); // 添加到集合 this.BorrowBarcodes.Add(strBarcode); string strNo = DomUtil.GetAttr(node, "no"); string strBorrowDate = DomUtil.GetAttr(node, "borrowDate"); string strPeriod = DomUtil.GetAttr(node, "borrowPeriod"); string strOperator = DomUtil.GetAttr(node, "operator"); string strRenewComment = DomUtil.GetAttr(node, "renewComment"); string strColor = "bgcolor=#ffffff"; string strOverDue = ""; // string strError = ""; // 检查超期情况。 // return: // -1 数据格式错误 // 0 没有发现超期 // 1 发现超期 strError中有提示信息 // 2 已经在宽限期内,很容易超期 2009/3/13 nRet = app.CheckPeriod( calendar, strBorrowDate, strPeriod, out strError); if (nRet == -1) strOverDue = strError; else { strOverDue = strError; // 其他无论什么情况都显示出来 } string strResult = ""; string strClass = " class='roundcontentdark' "; if ((i % 2) == 1) strClass = " class='roundcontentlight' "; strResult += "<tr " + strClass + strColor + " nowrap><td nowrap>"; // 左 left.Text = strResult; // checkbox // checkbox.Text = Convert.ToString(i + 1); // 右开始 strResult = " "; strResult += "<a href='book.aspx?barcode=" + strBarcode + "&borrower=" + strReaderBarcode + "'>" + strBarcode + "</a></td>"; // 获得摘要 string strSummary = ""; string strBiblioRecPath = ""; LibraryServerResult result = app.GetBiblioSummary( sessioninfo, strBarcode, null, null, out strBiblioRecPath, out strSummary); if (result.Value == -1 || result.Value == 0) strSummary = result.ErrorInfo; strResult += "<td width='50%'>" + strSummary + "</td>"; strResult += "<td nowrap align='right'>" + strNo + "</td>"; strResult += "<td nowrap>" + ItemConverter.LocalTime(strBorrowDate) + "</td>"; strResult += "<td nowrap>" + strPeriod + "</td>"; strResult += "<td nowrap>" + strOperator + "</td>"; strResult += "<td>" + strOverDue + "</td>"; strResult += "<td>" + strRenewComment.Replace(";", "<br/>") + "</td>"; strResult += "</tr>"; right.Text = strResult; } // 把多余的行隐藏起来 for (int i = nodes.Count; ; i++) { PlaceHolder line = (PlaceHolder)borrowinfo.FindControl("borrowinfo_line" + Convert.ToString(i)); if (line == null) break; line.Visible = false; } }