我在ASP.NET頁面上有一個GridView,其TemplateField列在ItemTemplate中有一個TextBox。然後我有一個命令字段,它應該從該TextBox中提取文本,並在運行存儲過程的SqlCommand中使用它。無法從gridview上的文本框中獲取值
這裏是我的C#代碼:
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = this.gvwSNConfirm.Rows[index];
TableCell intID = selectedRow.Cells[1];
int reqID = int.Parse(intID.Text);
// Get the SN from the text box on the selected row
TableCell snCell = selectedRow.Cells[0];
TextBox tbox = (TextBox)staffNum.FindControl("txtSN");
string stSN = tbox.Text.ToString();
當我添加一個破發點,看我得到正確的ID但TBOX的文字是「爲INTID和tbox.Text值」。
的加價爲兩列,我引用是
<asp:TemplateField HeaderText="SN">
<ItemTemplate>
<asp:TextBox ID="txtSN" runat="server" MaxLength="20" Width="100px" />
</ItemTemplate>
<HeaderStyle BackColor="#171695" Font-Names="Arial" Font-Size="Small" ForeColor="White" Wrap="true" />
</asp:TemplateField>
<asp:BoundField DataField="Request" HeaderText="Request" ReadOnly="true" SortExpression="Request" />
任何人都可以提供任何幫助,爲什麼我不能得到從文本框中的文本?它第一次運行,但後來所有的tbox文本值已經「」。
非常感謝
安迪
NEW CODE(05/03/2010):
protected void gvwSecond_RowCommand(object sender, GridViewCommandEventArgs e)
{
if ((e.CommandName == "Confirm") || (e.CommandName == "Decline"))
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = gvwSecond.Rows[index];
int secondID = int.Parse(row.Cells[1].Text);
TextBox txtsn = ((TextBox)row.FindControl("txtSecSN"));
string sn = txtsn.Text;
設法讓代碼工作後,它突然停止工作,我不知道爲什麼。上面包含了正在工作的更新代碼。 – anD666