0

私はこのコードを持っています:

<div>
        <asp:DataList ID="dlRange" runat="server" RepeatDirection="Vertical" RepeatLayout="Flow"
            OnItemDataBound="dlRange_ItemDataBound">
            <ItemTemplate>
                <hr>
                <h2>
                    <%# Eval("COMMITEENAME")%>
                </h2>
                <asp:DataList ID="dlComp" runat="server" RepeatDirection="Vertical" RepeatLayout="Flow">
                    <ItemTemplate>
                        <label for='<%#"comp" + Eval("CID")%>'>
                            <%# Eval("NAME")%></label>
                        <input id='<%#"comp" + Eval("CID")%>' type="range" pattern="[0-9]*" name='<%#"comp" + Eval("CID")%>'
                            min="0" max="10" data-highlight="true" value="" data-show-value="true" data-popup-enabled="true" />
                    </ItemTemplate>
                </asp:DataList>
            </ItemTemplate>
        </asp:DataList>
        <br />
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click"
            data-theme="b" />
    </div>

コードビハインド:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    using (BOTEntities context = new BOTEntities())
    {
        string memberID = Request.Cookies["BOTDAT"]["PersonId"];
        var comps = context.COMPETENCies.OrderBy(o => o.CID);
        DateTime date = DateTime.Now;
        foreach (var col in comps)
        {
            COMPVALUE newCompVal = new COMPVALUE();
            newCompVal.CID = col.CID;
            newCompVal.C_DATE = date;
            newCompVal.MEMBERID = memberID;
            decimal compVal = Request.Form["comp" + col.CID] == "" ? 0 : Convert.ToDecimal(Request.Form[(int)col.CID]);
            newCompVal.VALUE = compVal;
            context.COMPVALUEs.Add(newCompVal);
        }
        int result = context.SaveChanges();
        System.Diagnostics.Debug.WriteLine("Added to CompValue" + result);
    }
}

Convert.ToDecimal(Request.Form[(int)col.CID]);正しい値を返しません。私のページには約 26 の入力範囲コントロールがありますがcompVal、8 番目の入力を取得した後の爆弾の背後にあるコードです。何か案は?

4

0 に答える 0