嗨,我正在尝试用Telerik RadTextBoxes用一个简单的表单更新一些数据库的值。我可以设置文本值,没有问题,但当涉及到保存在按钮上单击时,值不会更新。我设置文本框的代码在页面加载函数中,但是我正在检查(!IsPostBack)
下面是我的html:
<div style="width:95%;">
<div style=" width:100%;float:left; background-color:#fff; border:1px solid #d1d2d3; margin-top:25px; padding:15px; -webkit-box-shadow: inset 1px 0px 5px 0px rgba(50, 50, 50, 0.10); -moz-box-shadow: inset 1px 0px 5px 0px rgba(50, 50, 50, 0.10); box-shadow: inset 1px 0px 5px 0px rgba(50, 50, 50, 0.10);">
<h2 style="float:left; width:50%;"><asp:Literal ID="litTitle" runat="server" Text="Add A New Zone" /></h2>
<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" Width="100%">
<telerik:RadNotification runat="server" id="notifyError" Position="Center" Width="330" Height="130" EnableRoundedCorners="true" EnableShadow="true" Style="z-index: 35000"></telerik:RadNotification>
<div style="float:right;margin-right:10px;margin-left:5px;"><telerik:RadButton ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" /></div><div style="float:right;margin-right:5px;"><telerik:RadButton ID="btnCancel" runat="server" Text="Cancel" OnClick="btnCancel_Click" /></div><div style="float:right;margin-right:5px;"><telerik:RadButton ID="btnDelete" runat="server" Text="Delete" OnClick="btnDelete_Click" OnClientClicked="confirm('Are you sure you wish to delete this zone?');" /></div>
<div class="clear" style="clear:both;height:25px;"></div>
<div style="width:100%;">
<div style="float:left;">
<div style="float:left; margin-left:10px; margin-right:5px; width:200px;">Zone Code:</div>
<div style="float:left; margin-left:5px; margin-right:10px;"><telerik:RadTextBox ID="txtZoneName" runat="server" CausesValidation="false" Width="200"></telerik:RadTextBox></div>
</div>
<div class="clear" style="height:35px;clear:both;"></div>
<div style="float:left;">
<div style="float:left; margin-left:10px; margin-right:5px; width:200px;">Name:</div>
<div style="float:left; margin-left:5px; margin-right:10px;"><telerik:RadTextBox ID="txtZoneCode" runat="server" CausesValidation="false" Width="200"></telerik:RadTextBox></div>
</div>
<div class="clear" style="height:35px;clear:both;"></div>
<div>
<div style="float:left; margin-left:10px; margin-right:5px; width:200px;">Monthly Book Page Goal:</div>
<div style="float:left; margin-left:5px; margin-right:10px;"><telerik:RadTextBox ID="txtZoneBookGoal" runat="server" CausesValidation="false" Width="200"></telerik:RadTextBox></div>
</div>
<div class="clear" style="height:45px;clear:both;"></div>
<div style="width:250px; margin:0 auto;">
<div style="float:left;"><telerik:RadButton ID="btnCreate" runat="server" Text="Save" OnClick="btnCreate_Click" /></div>
</div>
</div>
</telerik:RadAjaxPanel>
</div>
</div>这是我的c#:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
if(Request.Params["z"] != null)
{
Zones z = Zones.GetByID(Utils.GetLong(Request.Params["z"]));
this.txtZoneCode.Text = z.Code;
this.txtZoneName.Text = z.Name;
this.txtZoneBookGoal.Text = Utils.GetString(z.BookGoal);
this.litTitle.Text = "Edit Zone";
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
bool valid = true;
string error = "";
if (this.txtZoneCode.Text == "")
{
valid = false;
error += "- Code<br/>";
}
if (this.txtZoneName.Text == "")
{
valid = false;
error += "- Name<br/>";
}
if (valid)
{
if (Request.Params["z"] != null)
{
Zones z = Zones.GetByID(Utils.GetLong(Request.Params["z"]));
z.Code = this.txtZoneCode.Text;
z.Name = this.txtZoneName.Text;
z.BookGoal = Utils.GetInt(this.txtZoneBookGoal.Text);
z.Save();
if (z.ZoneID > 0)
{
Response.Redirect("ManageZones.aspx?v=1", true);
}
else
{
this.notifyError.Title = "Zone update was not successfull!";
this.notifyError.Text = "There was an error saving your zone. Please try again";
this.notifyError.Show();
return;
}
}
else
{
Zones z = new Zones();
z.Code = this.txtZoneCode.Text;
z.Name = this.txtZoneName.Text;
z.BookGoal = Utils.GetInt(this.txtZoneBookGoal.Text);
z.Save();
if (z.ZoneID > 0)
{
Response.Redirect("ManageZones.aspx?v=1", true);
}
else
{
this.notifyError.Title = "Zone creation was not successfull!";
this.notifyError.Text = "There was an error saving your zone. Please try again";
this.notifyError.Show();
return;
}
}
}
else
{
this.notifyError.Title = "Please fill in the following to continue:";
this.notifyError.Text = error;
this.notifyError.Show();
return;
}
}罗伯特·泽诺
发布于 2015-02-07 04:39:56
我将OnClientClicked更改为OnClientClicking,因为有一个javascript错误导致页面断开,无法提取正确的数据
发布于 2015-02-05 07:28:54
您有四个按钮-两个按钮具有相同的名称保存。
看起来你按错了。这也让我感到困惑。
protected void btnSave_Click(object sender, EventArgs e)
{
// Not this event
}
protected void btnCreate_Click(object sender, EventArgs e)
{
// You need to use this event.
}更好的设计实践
像btnXXX这样的DO NOT use Hungarian notation,特别是当你使用像telerik这样的第三方控件时。
https://stackoverflow.com/questions/28333044
复制相似问题