我有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();
}
}
以下是webservice的代码:
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会根据数据库中的记录重新加载。
先生/女士,您的回答将会有很大帮助。谢谢++答案 0 :(得分:2)
您可以使用UpdatePanel
并将GridView
放入其中。然后,为了从javascript引发回发,您必须使用__doPostBack
并定位您的UpdatePanel。
此处的一些信息可以帮助您实现此目的:http://encosia.com/easily-refresh-an-updatepanel-using-javascript/
答案 1 :(得分:1)
您必须将GridView放在更新面板和放大器中。以某种方式从客户端刷新它。如果你想做所有客户,你可以重新发明轮子和&amp;使用像jTables和amp;创建自己的网格,但我不建议
__doPostback
Javascript 的document.getElementById( 'yourButton')点击();
答案 2 :(得分: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。
希望这会有所帮助..
答案 3 :(得分:0)
我意识到它有点旧论坛。但是,我在按钮上使用UseSubmitBehavior = false。当然,使按钮成为asp:Button。并且,声明Onclick和OnClientClcik事件。这样,它将首先触发onclientclick事件,然后触发onclick事件。
斯
答案 4 :(得分:0)
将以下行添加到jQuery的末尾:
$("#YourGridView").load(location.href + " #YourGridView");