업데이트 : 문제가 발견되었습니다. 텍스트 속성은 aspx 파일에서 이전 값을 사용하고 있습니다. 포스트 백 동안 속성 변경을 고려하지 않습니다. 이제, 그 문제를 해결하는 방법은 다른 것입니다.ASP.Net 텍스트 상자에 텍스트 속성이 있지만 브라우저에 올바른 값이 표시됩니다.
원래 질문 : 요청한 레코드에 따라 페이지로드시 값을 표시하는 텍스트 상자가 내 페이지에 있습니다.
<ASP:TEXTBOX id="txtWarrantyNoValue" runat="server" CssClass="LabelTextBox" ReadOnly="True"></ASP:TEXTBOX>
페이지로드시 쿼리 문자열을 기반으로 완벽하게 작동하는 텍스트 속성을 설정했습니다. 그러나 다시 게시 할 때 txtWarrantyNoValue.Text
값은 빈 문자열입니다. 왜 이런 일이 일어나는지 알 수 없습니다.
편집 :
내가 사용하는 것이 더 나은 생각 protected void Page_Load(object sender, System.EventArgs e) {
try {
if (Request.QueryString[ "MESSAGE" ] != null && Request.QueryString[ "MESSAGE" ] != "") objErrorDisplay.MessageCode = Request.QueryString[ "MESSAGE" ];
string strWarrCommData = Request.QueryString[ Constants.QS_DATA_FLAG ];
if (strWarrCommData != null && strWarrCommData.Trim().Equals(Constants.QS_COMMISSION_DATA)) bWarrantyScreen = false;
strScreenMode = Request.QueryString[ Constants.SESSION_MODE ];
if (strScreenMode == null) strScreenMode = Constants.SCREEN_MODE_MODIFY;
if (strScreenMode == "") strScreenMode = Constants.SCREEN_MODE_MODIFY;
hdnScreenMode.Value = strScreenMode;
ApplyPermissions();
Localize();
BindDropDowns();
if (!IsPostBack && strScreenMode != Constants.SCREEN_MODE_NEW) this.GetWarrantyContractData();
SetControlStyleByScreenMode();
}
catch (FANUCBaseException fbeEx) {
objErrorDisplay.ErrorToLog = fbeEx;
}
}
private void BindDropDowns() {
this.ddlSalesType.Attributes.Add("DataSource", "DefaultDataIslands");
this.ddlSalesType.Attributes.Add("DataMember", Constants.DI_SALES_TYPE);
this.ddlSalesType.Attributes.Add("IsBlankReqd", "Y");
this.ddlSalesType.Attributes.Add("SelectedValue", Request.Form[ "ddlSalesType" ]);
this.ddlCurrency.Attributes.Add("DataSource", "DefaultDataIslands");
this.ddlCurrency.Attributes.Add("DataMember", Constants.DI_CURRENCY_CODE);
this.ddlCurrency.Attributes.Add("IsBlankReqd", "Y");
this.ddlCurrency.Attributes.Add("SelectedValue",Request.Form[ "ddlCurrency" ]);
}
Function to get the data
virtual public Row[] GetWarrantyContract(Row objWarrantyFilter, FANUC.Common.BaseClasses.PagingEventArgs e) {
string strSqlQuery
= " SELECT"
+ " WRNT_Warranty_No,"
+ " WRNT_Seiban,"
+ " WRNT_HQ_Seiban,"
+ " CASE"
+ " WHEN WRNT_Data_Flag = '1' then 'Warranty'"
+ " WHEN WRNT_Data_Flag = '2' then 'Commission'"
+ " ELSE ''"
+ " END AS WRNT_Data_Flag,"
+ " WRNT_Data_Flag as WRNT_Data_Flag_Value,"
+ " WRNT_Unique_Key,"
+ " CASE"
+ " WHEN WRNT_IM_Flag = 'I' then 'Installation'"
+ " WHEN WRNT_IM_Flag = 'M' then 'Maintenance'"
+ " WHEN WRNT_IM_Flag = 'X' then 'Completed'"
+ " ELSE ''"
+ " END AS WRNT_IM_Flag,"
+ " WRNT_IM_Flag as WRNT_IM_Flag_Value,"
+ " WRNT_System_OS_No,"
+ " WRNT_Entry_Seiban_Date,"
+ " WRNT_Warranty_Print_Date,"
+ " WRNT_MTB_Code,"
+ " WRNT_MTB_Name,"
+ " WRNT_Product_ID,"
+ " WRNT_Product_Name,"
+ " WRNT_Product_Serial_No_FA,"
+ " WRNT_Product_Serial_No_ROBO,"
+ " WRNT_Dealer_ID,"
+ " WRNT_Dealer_Name,"
+ " WRNT_End_Cust_ID,"
+ " WRNT_End_Cust_Name,"
+ " WRNT_Total_Amount,"
+ " WRNT_POS_No,"
+ " WRNT_Spec,"
+ " WRNT_Sales_Divide_No,"
+ " WRNT_Sales_Type,"
+ " WRNT_Shipped_Date,"
+ " WRNT_Commission_Fee,"
+ " WRNT_Commission_Rate,"
+ " WRNT_Without_Tax_Fee,"
+ " WRNT_Tax_Fee,"
+ " WRNT_Tax_Rate,"
+ " WRNT_Actual_Destination,"
+ " WRNT_Sales_Group_Code,"
+ " WRNT_Sales_Group_Name,"
+ " WRNT_HQ_To_Country,"
+ " WRNT_HQ_Destination,"
+ " WRNT_Invoiced_Flag,"
+ " WRNT_Invoive_No,"
+ " WRNT_Invoice_Date,"
+ " WRNT_Warranty_Start_Date,"
+ " WRNT_Warranty_End_Date,"
+ " WRNT_Local_Sale_Flag,"
+ " WRNT_Currency_Code,"
+ " WRNT_Seiban_Code,"
+ " WRNT_Comments,"
+ " Use_Count,"
+ " WRNT_Deferred_Revenues_Generated_Flag,"
+ " WRNT_CreatedDate "
+ " FROM"
+ " TBL_Warranty";
Row objFilter = new Row();
objFilter[ "WRNT_Warranty_No~like" ] = objWarrantyFilter[ "WRNT_Warranty_No" ];
objFilter[ "WRNT_Seiban~like" ] = objWarrantyFilter[ "WRNT_Seiban" ];
objFilter[ "WRNT_Entry_Seiban_Date~>=*_From" ] = objWarrantyFilter[ "WRNT_Entry_Seiban_Date_From" ];
objFilter[ "WRNT_Entry_Seiban_Date~<=*_To" ] = objWarrantyFilter[ "WRNT_Entry_Seiban_Date_To" ];
objFilter[ "WRNT_End_Cust_Name~like" ] = objWarrantyFilter[ "WRNT_End_Cust_Name" ];
objFilter[ "WRNT_Warranty_Print_Date~>=*_From" ] = objWarrantyFilter[ "WRNT_Warranty_Print_Date_From" ];
objFilter[ "WRNT_Warranty_Print_Date~<=*_To" ] = objWarrantyFilter[ "WRNT_Warranty_Print_Date_To" ];
objFilter[ "WRNT_Warranty_End_Date~>=*_From" ] = objWarrantyFilter[ "WRNT_Warranty_End_Date_From" ];
objFilter[ "WRNT_Warranty_End_Date~<=*_To" ] = objWarrantyFilter[ "WRNT_Warranty_End_Date_To" ];
objFilter[ "WRNT_MTB_Name~like" ] = objWarrantyFilter[ "WRNT_MTB_Name" ];
objFilter[ "WRNT_Product_ID~like" ] = objWarrantyFilter[ "WRNT_Product_ID" ];
objFilter[ "WRNT_HQ_Destination~like" ] = objWarrantyFilter[ "WRNT_HQ_Destination" ];
objFilter[ "WRNT_Total_Amount" ] = objWarrantyFilter[ "WRNT_Total_Amount" ];
objFilter[ "WRNT_Product_Serial_No_ROBO~like" ] = objWarrantyFilter[ "WRNT_Product_Serial_No_ROBO" ];
objFilter[ "WRNT_Product_Serial_No_FA~like" ] = objWarrantyFilter[ "WRNT_Product_Serial_No_FA" ];
objFilter[ "WRNT_Invoiced_Flag" ] = objWarrantyFilter[ "WRNT_Invoiced_Flag" ];
objFilter[ "WRNT_Local_Sale_Flag" ] = objWarrantyFilter[ "WRNT_Local_Sale_Flag" ];
objFilter[ "WRNT_Data_Flag" ] = objWarrantyFilter[ "WRNT_Data_Flag" ];
objFilter[ "WRNT_HQ_Seiban~like" ] = objWarrantyFilter[ "WRNT_HQ_Seiban" ];
CommonBQ objCommonBQ = new CommonBQ();
string strSearchClause = objCommonBQ.CreateFilter(objFilter);
int iWarrantyFromIndex = strSearchClause.IndexOf("WRNT_Warranty_End_Date_From");
int iWarrantyToIndex = strSearchClause.IndexOf("WRNT_Warranty_End_Date_To");
if (iWarrantyFromIndex != -1 && iWarrantyToIndex == -1) {
int iWarrantyEndSpaceIndex = strSearchClause.IndexOf(" ", iWarrantyFromIndex);
strSearchClause = strSearchClause.Substring(0, iWarrantyEndSpaceIndex) + " OR WRNT_Warranty_End_Date IS NULL " + strSearchClause.Substring(iWarrantyEndSpaceIndex + 1) ;
}
string strCountQuery = " SELECT COUNT(1) FROM TBL_Warranty";
string strFinalString = "";
string strConnector = " WHERE ";
if (!strSearchClause.Equals("")) {
strFinalString = strSqlQuery + strConnector + strSearchClause ;
strCountQuery += strConnector + strSearchClause ;
}
else {
strSqlQuery += strConnector ;
int iFirstPos = strSqlQuery.IndexOf("AND", 0);
string strFirstPart = strSqlQuery.Substring(0, iFirstPos);
string strSecondPart = strSqlQuery.Substring(iFirstPos + 3, strSqlQuery.Length - iFirstPos - 3);
strFinalString = strFirstPart + strSecondPart;
}
strFinalString += " ORDER BY CAST(WRNT_Warranty_No AS INT) DESC ";
return GetRows(strFinalString, strCountQuery, CreateParameterArray(objWarrantyFilter), CommandType.Text, null, e);
}
추가되었습니다. 다른 기능을 위해 코드를 게시해야한다면 알려주십시오. – jitendragarg
@jitendragarg 그래서 진짜 문제는 무엇입니까? 텍스트 상자의 값을 얻을 수 없거나 값이 쿼리 문자열에 없을 때 텍스트 상자가 마술처럼 채워지는 것을 궁금해하십니까? – Leron
값에 액세스 할 수없는 것 같습니다. 업데이트 화면입니다. 다시 게시 할 때 수정하기 전에 해당 레코드가 있는지 확인하기 위해 텍스트 값을 사용합니다. 'rowWarranty [ "WRNT_Warranty_No"] \t = txtWarrantyNoValue.Text.Trim();'이 코드는 이전에 작동 했었고 다른 페이지에서도 잘 작동하지만 여기서는 텍스트 값이 빈 문자열이라고 말합니다. – jitendragarg