前台:
<asp:GridView ID="gvPayType" runat="server" AutoGenerateColumns="False"
Style="position: relative" Width="100%" OnRowDataBound="gvPayType_RowDataBound">
<Columns>
<asp:BoundField DataField="ParaNumber" HeaderText="编码">
<HeaderStyle HorizontalAlign="Left" Width="15%" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="ParaName" HeaderText="付款方式">
<HeaderStyle HorizontalAlign="Left" Width="25%" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:TemplateField HeaderText="金额">
<HeaderStyle HorizontalAlign="Left" Width="25%" />
<ItemStyle HorizontalAlign="Left" />
<ItemTemplate>
<asp:TextBox runat="server" Height="12px" Width="70px" id="txtMoney" AutoPostBack="True"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="备注">
<HeaderStyle HorizontalAlign="Left" Width="35%" />
<ItemStyle HorizontalAlign="Left" />
<ItemTemplate>
<asp:TextBox runat="server" Height="12px" Width="90px" id="txtNotes" AutoPostBack="True"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>后台:
protected void btnSave_Click(object sender, EventArgs e)
{
decimal payMoney=0;
foreach (GridViewRow gvr in gvPayType.Rows)
{
TextBox tbMoney = (TextBox)gvr.FindControl("txtMoney");
TextBox tbNotes = (TextBox)gvr.FindControl("txtNotes");
if (tbMoney.Text != "")
payMoney += Decimal.Parse(tbMoney.Text);
--这里得到的tbMoney.Text始终为我绑定时的值,而不是页面输入的值,这个太奇怪了,原来使用好像没这问题阿
}
}高手解决!谢谢!!
<asp:GridView ID="gvPayType" runat="server" AutoGenerateColumns="False"
Style="position: relative" Width="100%" OnRowDataBound="gvPayType_RowDataBound">
<Columns>
<asp:BoundField DataField="ParaNumber" HeaderText="编码">
<HeaderStyle HorizontalAlign="Left" Width="15%" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="ParaName" HeaderText="付款方式">
<HeaderStyle HorizontalAlign="Left" Width="25%" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:TemplateField HeaderText="金额">
<HeaderStyle HorizontalAlign="Left" Width="25%" />
<ItemStyle HorizontalAlign="Left" />
<ItemTemplate>
<asp:TextBox runat="server" Height="12px" Width="70px" id="txtMoney" AutoPostBack="True"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="备注">
<HeaderStyle HorizontalAlign="Left" Width="35%" />
<ItemStyle HorizontalAlign="Left" />
<ItemTemplate>
<asp:TextBox runat="server" Height="12px" Width="90px" id="txtNotes" AutoPostBack="True"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>后台:
protected void btnSave_Click(object sender, EventArgs e)
{
decimal payMoney=0;
foreach (GridViewRow gvr in gvPayType.Rows)
{
TextBox tbMoney = (TextBox)gvr.FindControl("txtMoney");
TextBox tbNotes = (TextBox)gvr.FindControl("txtNotes");
if (tbMoney.Text != "")
payMoney += Decimal.Parse(tbMoney.Text);
--这里得到的tbMoney.Text始终为我绑定时的值,而不是页面输入的值,这个太奇怪了,原来使用好像没这问题阿
}
}高手解决!谢谢!!
这个是没有的,我测试时加的
暂时还未找到方法
你这句话没问题?
tbMoney.Text = ((TextBox)gvr.FindControl("txtMoney")).Text;
这样还差不多但是这跟我的有什么区别?问题是tbMoney.Text的值在页面输入改变后的值就不能得到,其值还是为绑定时的值
http://dotnet.aspx.cc/article/a933b187-06c3-4263-9eec-414a54d9c815/read.aspx
if (!IsPostBack)
{
}
{
}
的問題
{
}
另外这个完全可以交给sqldatasource来作,就省了自己写代码了嘛
if (!IsPostBack)
{
}