2

GridView、テキストボックス、html ボタンがあります。テキストボックスには、html ボタンをクリックした後にデータベースに保存される値が含まれています。

Here is the code for the page:

<div>
        <div id="Gridview-container">
            <asp:GridView ID="GridView1" runat="server">
            </asp:GridView>
        </div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <input type="button" id="btn" value="insert" />

    </div>
    </form>

    <script type="text/javascript">

        $("#btn").click(function () {
            var a = $("#TextBox1").val();

            $.ajax({
                url: 'WebService.asmx/insert',
                data: "{ 'name': '" + a + "' }",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                type: "POST",
                success: function () {

                    //alert('insert was performed.');
                    $("#Gridview-container").empty();


                }
            });

        });


    </script>

そのページの背後にあるコードは次のとおりです。

public partial class GridViewCourses : System.Web.UI.Page
{
    Database db = new Database();

    protected void Page_Load(object sender, EventArgs e)
    {
        GridView1.DataSource = db.LoadCourses();
        GridView1.DataBind();
    }
}

Web サービスのコードは次のとおりです。

public class WebService : System.Web.Services.WebService {

    public WebService () {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 

    }

    [WebMethod]
    public string HelloWorld() {

        return "Hello World";
    }

    [WebMethod]
    public void insert(string name)
    {
        Database db = new Database();
        db.Add(name);
    }



}

GridView.DataBind() と同じ効果を持つものが欲しいので、削除と更新を実行すると、データベースからのレコードに基づいて GridView がリロードされます。

閣下/奥様、あなたの答えは大変役に立ちます。ありがとう++

4

5 に答える 5

2

を使用して、UpdatePanelその中に配置できますGridView。次に、JavaScript からポストバックを発生させるには__doPostBack、UpdatePanel を使用してターゲットにする必要があります。

これを実装するのに役立つ情報がここにあります: http://encosia.com/easily-refresh-an-updatepanel-using-javascript/

于 2012-10-08T12:39:01.273 に答える
1

GridViewを更新パネル内に配置し、クライアント側から何らかの方法で更新する必要があります。クライアントサイドですべてを実行したい場合は、車輪の再発明を行い、jTablesのようなものを使用して、独自のグリッドを作成できますが、これはお勧めしません。

  1. __doPostbackJavascriptを使用することもできます
  2. または、ページに非表示のボタンフィールドを配置し、クライアント側の閉じるボタンでそのクリックイベントを呼び出します。

document.getElementById('yourButton')。click();

于 2012-10-08T15:55:38.173 に答える
0

jQuery の末尾に次の行を追加します。

$("#YourGridView").load(location.href + " #YourGridView");
于 2016-09-20T07:21:34.440 に答える
0

少し古いフォーラムだと思います。しかし、ボタンで UseSubmitBehavior = false を使用しています。もちろん、ボタンを asp:Button にします。また、Onclick および OnClientClcik イベントを宣言します。このようにして、最初に onclientclick イベントを発生させ、次に onclick イベントを発生させます。

スリ

于 2013-10-04T15:20:04.163 に答える
0

別のメソッドで gridview バインディング コードを記述します。このような

public void dataBind()

{

GridView1.DataSource = db.LoadCourses();
GridView1.DataBind();

}

[WebMethod]
public void insert(string name)
{
    Database db = new Database();
    db.Add(name);
    //after successful insertion call dataBind

    dataBind() //this method will update the grdivew with new data

}

必要に応じて、分離コードで webmethod を pagemethod として定義します。

お役に立てれば..

于 2012-10-08T12:45:44.523 に答える