一DATAGRID控件,设置了TemplateColumn,EditItemColum为一Textbox控件。当我点击更新按纽时,我在Textbox输入的值不能被更新,单步调试时发现值总是更新前的值,如原来为60,我在文本框中输入80,点更新,结果还是60,请帮忙。 Dim CusNum As String = Session("CompanyCode").ToString
Dim ProdNum As String = e.Item.Cells(0).Text.Trim
Dim ExfDate As String = e.Item.Cells(4).Text.Trim
Dim Adjust As TextBox
Adjust = CType(DataGrid1.Items(e.Item.ItemIndex).Cells(3).FindControl("EditAdjust"), TextBox)'这里为获取文本框中的值
Dim Revisedqty As Decimal = CType(Adjust.Text.Trim, Decimal)
Dim SpecLeadTm As Integer = CType(CType(e.Item.Cells(6).FindControl("EditTm"), TextBox).Text.Trim, Integer)
If DataUnit.Aquamate_updateResived(CusNum, ProdNum, ExfDate, Revisedqty, SpecLeadTm) = True Then'这是一个更新的存储过程。
DataGrid1.EditItemIndex = -1
DataBinds()
Else
Throw New Exception("failed")
End If
Dim ProdNum As String = e.Item.Cells(0).Text.Trim
Dim ExfDate As String = e.Item.Cells(4).Text.Trim
Dim Adjust As TextBox
Adjust = CType(DataGrid1.Items(e.Item.ItemIndex).Cells(3).FindControl("EditAdjust"), TextBox)'这里为获取文本框中的值
Dim Revisedqty As Decimal = CType(Adjust.Text.Trim, Decimal)
Dim SpecLeadTm As Integer = CType(CType(e.Item.Cells(6).FindControl("EditTm"), TextBox).Text.Trim, Integer)
If DataUnit.Aquamate_updateResived(CusNum, ProdNum, ExfDate, Revisedqty, SpecLeadTm) = True Then'这是一个更新的存储过程。
DataGrid1.EditItemIndex = -1
DataBinds()
Else
Throw New Exception("failed")
End If
解决方案 »
- 如何为包含DropDownList控件的GridView添加一个新行 100分
- C# 编写监控目标网站是否可以访问的方法
- 用vs调试脚本的话每次跳入jquery的库文件,有没什么方法避免???
- 如何做功能“在戴尔网站中 左边选择 购买电脑配置 右边则动态显示价格 ”
- 文件上传到数据库中,怎么用下载工具下载
- 如何存储treeview的状态
- 菜鸟提问
- asp.net 下脚本代码分析???顶顶顶顶顶顶顶顶顶顶顶顶
- 多个不同名称的帐户登录同一系统问题
- literalControl是什么啊!
- 如果在INTERNET中使用web service+windows程序来开发C/S结构的程序,可行性大吗,性能会不会影响大
- 急!!!,请大家进来看一下这段代码,进来就有分!
Font-Size="8pt" Font-Names="Arial" OnItemDataBound="Data_ItemDataBound" BorderColor="Blue" BorderWidth="1px" AlternatingItemStyle-BackColor="AliceBlue"
SelectedItemStyle-BackColor="LightGrey" AutoGenerateColumns="False">
<SelectedItemStyle BackColor="LightGray"></SelectedItemStyle>
<AlternatingItemStyle BackColor="AliceBlue"></AlternatingItemStyle>
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" BackColor="Info"></HeaderStyle>
<Columns>
<asp:BoundColumn DataField="ProdNum" ReadOnly="True" HeaderText="Product#">
<HeaderStyle Width="100px"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="ProdDscrp" ReadOnly="True" HeaderText="Item Desc">
<HeaderStyle Width="200px"></HeaderStyle>
<ItemStyle Font-Size="7pt" Width="200px"></ItemStyle>
</asp:BoundColumn>
<asp:HyperLinkColumn DataNavigateUrlField="CustNum" DataNavigateUrlFormatString="javascript:varwin=window.open('Historyform.aspx?CustNum={0}',null,'width=500,height=300');window.Close();"
DataTextField="Frcst_qty" HeaderText="Forecast QTY Per (History/Month)">
<HeaderStyle HorizontalAlign="Center" Width="60px"></HeaderStyle>
</asp:HyperLinkColumn>
<asp:TemplateColumn HeaderText="Adjusted Forecast QTY">
<HeaderStyle Width="80px"></HeaderStyle>
<ItemTemplate>
<asp:Label id="Adjust" Runat=server text='<%# DataBinder.Eval(Container.DataItem,"Revised_qty") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Runat=server id="EditAdjust" CssClass=txtboxcss Text='<%# DataBinder.Eval(Container.DataItem,"Revised_qty") %>' Width=80 />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="ExFDate" ReadOnly="True" HeaderText="ETD Date">
<HeaderStyle Width="60px"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="lead_tm" ReadOnly="True" HeaderText="Production">
<HeaderStyle Width="50px"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="Special Event" runat="server">
<HeaderStyle Width="80px"></HeaderStyle>
<ItemTemplate>
<asp:Label ID="Label2" Runat=server text='<%# DataBinder.Eval(Container.DataItem,"Spec_lead_tm") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox runat="server" width="80px" CssClass=txtboxcss id="EditTm" Text='<%# DataBinder.Eval(Container.DataItem, "Spec_lead_tm") %>' /><br>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="RelativeTime" ReadOnly="True" HeaderText="Production"></asp:BoundColumn>
<asp:BoundColumn DataField="LatestSpecial" ReadOnly="True" HeaderText="Special Event" ItemStyle-Width="100"
HeaderStyle-Width="100"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="PO Status">
<HeaderStyle Width="50px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:CheckBox id=Postatus Checked='<%# DataBinder.Eval(Container.DataItem,"PO_status") %>' Enabled="False" Runat="server">
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Comment" ReadOnly="True" HeaderText="Comment">
<HeaderStyle Width="120px"></HeaderStyle>
</asp:BoundColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="<img src=ok.gif border=0 align=absmiddle alt='Save changes'>"
CancelText="<img src=cancel.gif border=0 align=absmiddle alt='Cancel editing'>" EditText="<img src=edit.gif border=0 align=absmiddle alt='Edit this item'>">
<ItemStyle HorizontalAlign="Center" BackColor="#CCCCFF"></ItemStyle>
</asp:EditCommandColumn>
</Columns>
</asp:datagrid>
Dim CusNum As String = Session("CompanyCode").ToString
Dim ProdNum As String = e.Item.Cells(0).Text.Trim
Dim ExfDate As String = e.Item.Cells(4).Text.Trim
Dim Adjust As TextBox
Adjust = CType(DataGrid1.Items(e.Item.ItemIndex).Cells(3).FindControl("EditAdjust"), TextBox)
Dim Revisedqty As Decimal = CType(Adjust.Text.Trim, Decimal)
Dim SpecLeadTm As Integer = CType(CType(e.Item.Cells(6).FindControl("EditTm"), TextBox).Text.Trim, Integer)
If DataUnit.Aquamate_updateResived(CusNum, ProdNum, ExfDate, Revisedqty, SpecLeadTm) = True Then
DataGrid1.EditItemIndex = -1
DataBinds()
Else
Throw New Exception("failed")
End If
End Sub
第二步執行Page_Init初始化頁面(不記得是不是)﹔
第三步才執行你操作的事件﹔在VB。net中你不大懂﹐在C#。net中﹐對DataGrid填充值﹐如下
//IsPostBack,是判頁面有沒有加載過﹐如有加載過就不再執行這一個if中的語句了
if(!IsPostBack)
{
....
DataGrid.DataSourse=MyDataSet.Table["Table1"]
.......
}
不知道在VB。NET中是用哪個﹐
希望對你有所啟發﹗
if not IspostBack then
DataBinds()
End if
在点击Update按纽时,需要PostPack一次到Server端执行。过程
Initialization->LoadViewState->LoadPostBackData->Load->RaisePostBackEvent->SaveViewState->Render
在load时,我Datainds了,没有判断。导致此时TxtBox中的数据己经变了。于是就出现此时的现象。谢谢。经验教训。下次小心。