1

その質問で申し訳ありませんが、どういうわけか停電があります(言い訳ではないことはわかっています)がRadNumbericTextBox、ボタンを使用して値を送信するために値を取得するにはどうすればよいですか(intが必要です)

<div class="fromRowDiv">
   <asp:Label ID="label1" CssClass="fromLabel" runat="server" Text="From Date" ></asp:Label>
   <telerik:RadNumericTextBox ID="fromYear" runat="server" MinValue="2000" NumberFormat-DecimalDigits="0" NumberFormat-GroupSeparator="" ></telerik:RadNumericTextBox>   
   <asp:Label ID="Tolabel2" CssClass="fromLabel" runat="server" Text="To Date"></asp:Label>
   <telerik:RadNumericTextBox ID="toYear" runat="server" MinValue="2000" NumberFormat-DecimalDigits="0" NumberFormat-GroupSeparator=""></telerik:RadNumericTextBox>    
</div>

protected void CalcButton_Click(object sender, EventArgs e)
{
            AnnualVacationManager mng = new AnnualVacationManager();

            mng.CalcForNextYear(fromYear,toYear);
}

RadNumbericTextBox (動的) からの値が必要です

  public AnnualVacationManager() {
    }

    public void CalcForNextYear(int fromYear, int toYear)
    {
        IEnumerable<HtUser> allUsers = HtUser.GetAll();
        List<AnnualVacation> newAnnualVacations = new List<AnnualVacation>();
        if (allUsers.Any()) {
            foreach (HtUser user in allUsers) {
                //int fromYear = 2013;
                //int toYear = 2014;
                IEnumerable<AnnualVacation> usersCurrentAnnualVacation = new List<AnnualVacation>(user.AnnualVacations.Where(a =>a.FromDate.Value.Year >= fromYear && a.FromDate.Value.Year < toYear));
                if (usersCurrentAnnualVacation.Any()) {
                    foreach (AnnualVacation existing in usersCurrentAnnualVacation) {
                        AnnualVacation newAnnualVacation = new AnnualVacation();
                        //Year stuff
                        DateTime newFromDate = existing.FromDate.Value;
                        newFromDate.AddYears(toYear - fromYear);
                        DateTime newToDate = existing.ToDate.Value;
                        newToDate.AddYears(toYear - fromYear);
                        //
                        newAnnualVacation.FromDate = newFromDate;
                        newAnnualVacation.ToDate = newToDate;
                        newAnnualVacation.WorkingTime = existing.WorkingTime;
                        newAnnualVacation.VacationDays = existing.VacationDays + (existing.VacationDays - user.GetBookedVacation(fromYear));

                        newAnnualVacations.Add(newAnnualVacation);

                        newAnnualVacation.HtUser = user;
                    }
                }
            }

            HtEntityFactory.Context.SaveChanges();
        }
    }
}

}

4

2 に答える 2

2

RadNumericTextBox には、ユーザーが入力した数値で null 許容の 10 進数 (または 2 倍) を返すサーバー側の Value プロパティがあります。有効な値が提供されている場合、値を取得するには、次のようにします。

//First .Value returns the nullable decimal or double
//second .Value gets the decimal or double in non-nullable form
fromYear.Value.Value

クライアントでは、次のget_value()ように取得するメソッドが必要です。

var box = $find("<%= fromYear.ClientID %>");
var val = box.get_value();

特定の形式で数値をフォーマットする必要がある場合があるため、数値の入力を調整する方法の詳細については、これを参照してください。具体的には次のとおりです。

<NumberFormat DecimalDigits="0" />

メソッドに値を次のように指定します。

mng.CalcForNextYear(Convert.ToInt32(fromYear.Value.Value), 
   Convert.ToInt32(toYear.Value.Value));

そして、それは問題を解決するはずです。これが機能するには、RadNumericTextBox コントロールに値が必要です。それ以外の場合は、最初に null を確認してください。

于 2013-02-21T13:26:38.540 に答える
0
int fromyearvalue = convert.toint32(fromYear.text)
int toyearvalue = convert.toint32(toYear.text)

 mng.CalcForNextYear(fromyearvalue ,toyearvalue );

また

mng.CalcForNextYear(= convert.toint32(fromYear.totext)),convert.toint32(toYear.totext));
于 2013-02-21T13:26:35.130 に答える