您好我正在尝试使用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;
}
}
Robert Zeno
答案 0 :(得分:1)
我将OnClientClicked更改为OnClientClicking,因为有一个javascript错误导致页面中断并且没有提取正确的数据
答案 1 :(得分:0)
您有四个按钮 - 两个按钮具有相同的名称保存。
看起来你错了。这让我也很困惑。
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.
}
DO NOT use Hungarian notation,例如btnXXX,尤其是当你使用像telerik这样的第三方控件时。