我正在尝试将文本框的值设置为gridview中列的值。我从LinkButton获取行。
下面的第一个TextBox1.Text行正常工作,可以将文本框的值设置为行号。
下面的第二个TextBox1.Text行对我的文本框没有任何作用。我期待行(索引)和列(1)的值,但我什么都没得到。 gridview中肯定有数据。 gridview的列数超过10列,我已经检查了0-5的值,并且在文本框中没有得到任何内容。
我没有运行它,同时两行都没有注释掉。
我正在做所有这些来解决由它引起的问题。
protected void lnkbtnPassRowData_Click(object sender, EventArgs e)
{
LinkButton btn = (LinkButton)sender;
GridViewRow gvr = (GridViewRow)btn.NamingContainer;
if (gvr != null)
{
int index = Convert.ToInt32(gvr.RowIndex.ToString());
TextBox1.Text = GridStaffMyJobs.Rows[index].RowIndex.ToString();
TextBox1.Text = GridStaffMyJobs.Rows[index].Cells[1].Text;
}
}
以下是gridview中包含链接按钮的代码。
<form id="StaffMyJobs" runat="server">
<div>
<h3>My Jobs</h3>
</div>
<div>
<asp:Label ID="lblHired" runat="server" Text="Rows in green indicate jobs that have been filled." Visible="False" BorderColor="#FF0909" Font-Bold="True" Font-Underline="True" ForeColor="YellowGreen"></asp:Label>
<br />
<asp:Label ID="lblOffers" runat="server" Text="Rows in red indicate jobs that have pending offers." Visible="False" BorderColor="#FF0909" Font-Bold="True" Font-Underline="True" ForeColor="Red"></asp:Label>
<br />
<asp:Button ID="btnAddJob" runat="server" Text="Add a Job" OnClick="btnAddJob_Click" Visible="true" />
<br />
<br />
</div>
<div>
<asp:GridView ID="GridMoreJobs" runat="server" AutoGenerateColumns="False" DataSourceID="SQLMoreJobs" >
<Columns>
<asp:BoundField DataField="more_jobs" HeaderText="more_jobs" SortExpression="more_jobs" Visible="false" />
</Columns>
</asp:GridView>
</div>
<div>
<asp:GridView ID="GridStaffMyJobs" runat="server" AutoGenerateColumns ="False" DataSourceID="SQLStaffMyJobs" ShowFooter="True" OnRowDataBound="GridMoreJobs_RowDataBound" HorizontalAlign="Center" >
<Columns>
<asp:TemplateField HeaderText="Actions">
<ItemTemplate>
<asp:LinkButton ID="lnkbtnPassRowData" Text='Reopen'
runat="server"
OnClick="lnkbtnPassRowData_Click" Visible='<%#
CanReopen((object)Eval("student_hired")) %>' />
</ItemTemplate>
</asp:TemplateField>
</form>