我是这么实现的
<asp:TemplateField HeaderText="编号">
<ItemStyle Width="50px" HorizontalAlign="Center"></ItemStyle><HeaderStyle Width="50px" HorizontalAlign="Center"></HeaderStyle>
<ItemTemplate>
<asp:TextBox id="txtproductNumber" runat="server" Width="50px" Text='<%# Eval("Material_id") %>' CausesValidation="True" BorderStyle="None" BorderWidth="0px" BackColor="Transparent"[color=#FF0000]onfocusout="javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView1$ctl<%=(Container.DisplayIndex+2)%>$rowclick', '');"[/color ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="按钮">
<ItemStyle BackColor="#EFF3FB" Width="190px" HorizontalAlign="Left"></ItemStyle><HeaderStyle Width="190px" HorizontalAlign="Center"></HeaderStyle>
<ItemTemplate>
<asp:LinkButton id="rowclick" runat="server" CausesValidation="False" CommandArgument='<%# Eval("id") %>' CommandName="rowclick_open"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
onfocusout="javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView1$ctl<%=(Container.DisplayIndex+2)%>$rowclick', '');" 这里要怎么获取行号请高手指点下
<asp:TemplateField HeaderText="编号">
<ItemStyle Width="50px" HorizontalAlign="Center"></ItemStyle><HeaderStyle Width="50px" HorizontalAlign="Center"></HeaderStyle>
<ItemTemplate>
<asp:TextBox id="txtproductNumber" runat="server" Width="50px" Text='<%# Eval("Material_id") %>' CausesValidation="True" BorderStyle="None" BorderWidth="0px" BackColor="Transparent"[color=#FF0000]onfocusout="javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView1$ctl<%=(Container.DisplayIndex+2)%>$rowclick', '');"[/color ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="按钮">
<ItemStyle BackColor="#EFF3FB" Width="190px" HorizontalAlign="Left"></ItemStyle><HeaderStyle Width="190px" HorizontalAlign="Center"></HeaderStyle>
<ItemTemplate>
<asp:LinkButton id="rowclick" runat="server" CausesValidation="False" CommandArgument='<%# Eval("id") %>' CommandName="rowclick_open"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
onfocusout="javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView1$ctl<%=(Container.DisplayIndex+2)%>$rowclick', '');" 这里要怎么获取行号请高手指点下
解决方案 »
- ------------如何用ASP.NET的文本框显示时间-------------
- 文本型数据保存到数据库中经常出现乱码
- javascript的问题
- 如何执行外部文件中保存的大段sql语句?
- 晕,看了“asp.net中DataGrid性能测试”觉得datagrid太那个了!不知道是不是真这样???
- 网站上图形条显示空间使用情况
- 一个Web控件取值的怪异问题,大家快来关注啊~~~~~~~``来者有分!
- 请问在datagrid的footer(就是分页那一行里)里加一个web控件,怎么做?
- 关于时间的问题
- 水晶报表打印问题:如何做一页三联的票据打印?
- Asp.net 中怎么实现这个功能?
- localhost变local,404 not found
<%=this.GridView1.DataKeys[e.RowIndex].Value.ToString() %>
这个不能胡写,不能有些人那样可笑地:先到客户端看看html代码,然后硬编码到程序中。这个必须由asp.net自动生成。你可以在RowDataBound事件处理程序中写:if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState == DataControlRowState.Edit)
{
TextBox c = e.Row.FindControl("txtproductNumber") as TextBox;
c.Attributes["onfocusout"] = this.Page.ClientScript.GetPostBackEventReference(e.Row.FindControl("rowclick"), string.Empty);
}
string clientId= c.ClientID;不过,我对你的代码的评估的重点不在于知道不知道行号,而是你对客户端id整个是上述那种可笑的“从客户端看看id”的思路的。当你的GridView在整个页面上的布局有所调整(例如GridView放到一个实现了INamingContainer接口的控件中,或者在GridView前边插入某个控件造成GridView在页面上的排列“次序”改变了),甚至当有一些运行时自动装载的控件,那么“'ctl00$ContentPlaceHolder1$GridView1$ctl ...”这个路径也是随时调整的。