Archive
中华家教吧9月份家教业务情况
总的来说,9月份是我做家教业务以来最好的一个月,越来越多的人选择我们中华家教吧,非常感谢所有代理对家教吧的支持,对我的支持。衷心地希望我们家教吧能有一个好的前景,祝各位代理生意兴隆。
在GridView的RowCommand事件中获取Rowindex,即获得数据行所在页的索引号
先看一下我的后台代码:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
//得到行所在的索引号
int idx = Convert.ToInt32(e.CommandArgument);
//得到各个控件的值
string id = GridView1.Rows[idx].Cells[0].Text;
string txt_ArtworkNum = ((TextBox)GridView1.Rows[idx].FindControl(”TextBox2″)).Text;
string txt_RollNum = ((TextBox)GridView1.Rows[idx].FindControl(”TextBox3″)).Text;
string txt_Artwork = ((TextBox)GridView1.Rows[idx].FindControl(”TextBox4″)).Text.Replace(”‘”, “””);
string txt_ShelfAddress = ((TextBox)GridView1.Rows[idx].FindControl(”TextBox5″)).Text;
string txt_OrderQty = ((TextBox)GridView1.Rows[idx].FindControl(”TextBox6″)).Text;
string txt_Supplier = ((TextBox)GridView1.Rows[idx].FindControl(”TextBox7″)).Text.Replace(”‘”,”””);
string txt_StartDate = ((TextBox)GridView1.Rows[idx].FindControl(”TextBox1″)).Text;
//其它代码省略……
再看一下原先的前台代码
<ItemTemplate>
<asp:Button ID=”Button3″ runat=”server” CausesValidation=”False”
CommandArgument=”<%# Container.DataItemIndex %>”
CommandName=”Entry” Text=”入库” OnClientClick=”return confirm(’确认要将此钢轮移出备用库放入当前使用库吗?’)”/>
</ItemTemplate>
</asp:TemplateField>
最后看一下改进后的代码
<ItemTemplate>
<asp:Button ID=”Button3″ runat=”server” CausesValidation=”False”
CommandArgument=”<%# ((GridViewRow) Container).RowIndex %>”
CommandName=”Entry” Text=”入库” OnClientClick=”return confirm(’确认要将此钢轮移出备用库放入当前使用库吗?’)”/>
</ItemTemplate>
</asp:TemplateField>
其实就是为了说明一个问题:
如果用Container.DataItemIndex 在后台代码中得到的是这一数据行在这个数据表中的序列,如果此Gridview不分页的话,用起来没有任何问题,如果分页的话,就不行了。如我们操作的是第二页的第二条记录,得到的序列是 11 ,即 idx =11 ,而我期望的是1.
如果用((GridViewRow) Container).RowIndex 那 idx=1; 即这一行代码得到的是此数据行在当前Gridview页面中的序列,如果PageSize=10的话,那idx 最大为9,最小为0.
今天项目中用到的,特别记录一下.
最新评论