Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 单击特定行中的按钮时,如何从网格视图控件插入数据?_Asp.net - Fatal编程技术网

Asp.net 单击特定行中的按钮时,如何从网格视图控件插入数据?

Asp.net 单击特定行中的按钮时,如何从网格视图控件插入数据?,asp.net,Asp.net,我有一个朋友请求表单。在此情况下,我使用grid view控件显示所有注册成员,因此希望发送请求的人可以发送请求。我的表单设计代码为: enter code here <asp:GridView ID="grdviewFriendRequest" runat="server" AllowPaging="true" AutoGenerateColumns="false" EmptyDataText="No members found" Width="100%" Font-Size=

我有一个朋友请求表单。在此情况下,我使用grid view控件显示所有注册成员,因此希望发送请求的人可以发送请求。我的表单设计代码为:

enter code here

<asp:GridView ID="grdviewFriendRequest" runat="server" AllowPaging="true"     AutoGenerateColumns="false"
EmptyDataText="No members found" Width="100%" Font-Size="16px" ForeColor="#FF9F00"
GridLines="None" PagerSettings-Mode="NumericFirstLast" 
onselectedindexchanged="grdviewFriendRequest_SelectedIndexChanged">
<FooterStyle BackColor="#FFB100" Font-Bold="true" ForeColor="#000000" />
<RowStyle BackColor="#FFD340" />
<EditRowStyle BackColor="#FFDE40" />
<SelectedRowStyle BackColor="#FFC900" Font-Bold="True" ForeColor="#000000" />
<PagerStyle BackColor="#FFEB73" ForeColor="Black" HorizontalAlign="Center" />
<HeaderStyle BackColor="#FFB100" Font-Bold="True" ForeColor="000000"   HorizontalAlign="Left" />
<AlternatingRowStyle BackColor="#FFDF73" />
<Columns>
<asp:TemplateField HeaderText="First Name">
<ItemTemplate>
<%#Eval("firstName")%></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last Name">
<ItemTemplate>
<%#Eval("lastName")%></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Send Friend Request">
<ItemTemplate>
<asp:Button ID="btnSendFrndReq" CssClass="btnImage" Text="Send Friend Request"    runat="server" OnClick="btnSendFrndReq_Click" /></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
但在我试过这个之后

enter code here

protected void grdviewFriendRequest_RowCommand(object sender, GridViewCommandEventArgs   e)
{
if (e.CommandName == "SendFriendReq")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = grdviewFriendRequest.Rows[index];
string fname = "", lname = "";

fname = row.Cells[0].Text;
lname = row.Cells[1].Text;
Int32 frmCandiid = (Int32)(Session["candiID"]);
InsertRegistation frndRq = new InsertRegistation();
Session["candID"] = frndRq.FrndReqGetCandiid(fname, lname);
Int32 toCandiid = (Int32)(Session["candID"]);
frndRq.InsertFrndReq(0, frmCandiid, toCandiid, DateTime.Now);
}

}
它给了我一个错误,说输入字符串的形式不正确

然后我尝试给commandArgument属性赋值,但它仍然给我值0

<asp:TemplateField HeaderText="Send Friend Request">
<ItemTemplate>
<asp:Button ID="btnSendFrndReq" CssClass="btnImage" Text="Send Friend Request"   runat="server" CommandName="SendFriendReq" CommandArgument="<%# Container.DataItemIndex %>"   /></ItemTemplate>
</asp:TemplateField>

并告诉我应该为命令参数提供什么值


那么,我现在能做什么呢?

看起来您实际上并不需要命令参数。
您需要的是找到单击按钮所在的行

碰巧您可以使用按钮(控件)属性的NamingContainer来实现这一点

<asp:TemplateField HeaderText="Send Friend Request">
<ItemTemplate>
<asp:Button ID="btnSendFrndReq" CssClass="btnImage" Text="Send Friend Request"   runat="server" CommandName="SendFriendReq" CommandArgument="<%# Container.DataItemIndex %>"   /></ItemTemplate>
</asp:TemplateField>
var MyRow = (GridViewRow)((Control)sender).NamingContainer;

var usefullTextBox = (TextBox)MyRow.FindControl("usefullTextBox"); // Yes, the name is made up.

....


DoWhatYouWant(usefullTextBox.Value);