1

テキストボックスからの入力を数値として受け取る必要があります。入力したテキストボックスとデータベース値から取得したデータから製品を作成する必要があります。テキストボックスでキーを押すイベントを実行するにはどうすればよいですか?

SqlConnection objcon = new SqlConnection(conn);
objcon.Open();
string SQL = "select * from Price";
SqlCommand objCommand = new SqlCommand(SQL, objcon);
SqlDataAdapter adapter = new SqlDataAdapter();
DataSet DS = new DataSet();
adapter.SelectCommand = objCommand;
adapter.Fill(DS);
DataTable dt = DS.Tables[0];
DataView dvWindows = new DataView(dt);
dvWindows.RowFilter = "Description = 'Windows'";
foreach (DataRowView rowView in dvWindows)
{
    DataRow row = rowView.Row;
    decimal d =Convert.ToInt32(txtncores.Text) * (decimal)row["CoreCost"];// txtncores is textbox
    txtWindows.Text = d.ToString();// result value to populate in text box
}

助けてください、ちらつきのない同じページの部分的な更新でAjaxを使用する必要がありますか

4

1 に答える 1

1

次のaspテキストボックスを使用できます。

<asp:textbox id="txtncores" onkeyup="MyFunction(this);" />

次に、jQueryを使用してAjax呼び出しを行う次のjavascript関数:

function MyFunction(elem)
{
    $.ajax({
        cache: false,
        type: "POST",
        url: "MyPage.aspx",
        data: "UpdatetxtWindows=" + elem.value ,
        dataType: "html",
        success: (function(data){
                document.getElementByID("txtWindows").value = data;
            })
        });
}

また、サーバー側のページ読み込みイベントで、次の手順を実行します(私のサンプルはVB.netにあります)。

If Request.Params("UpdatetxtWindows") <> "" Then
    'Use Request.Params("UpdatetxtWindows") to do your product as in:
    d = Convert.ToInt32(Request.Params("UpdatetxtWindows")) * (decimal)row["CoreCost"]
    'Return the result to the ajax success event
    Response.Write(d.ToString())  ' d is the decimal result as in your question.
End If

注:これらすべてをテストしたわけではありませんが、必要なものに非常に近いはずです。

于 2013-03-10T18:27:22.133 に答える