我有一个GridView,其中一个列是一个文本框。选中此文本框后,会弹出一个片段列表。当选择一件作品时,我需要在文本框中显示该作品。
<asp:UpdatePanel ID="udpPieceDetails" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:GridView style="width:75%;float:left"
ID="gvPieceOutturns"
ShowHeaderWhenEmpty="false"
CssClass="tblResults"
runat="server"
OnRowDataBound="gvPieceOutturns_ItemDataBound"
DataKeyField="ID"
AutoGenerateColumns="false"
allowpaging="false"
AlternatingRowStyle-BackColor="#EEEEEE">
<HeaderStyle CssClass="tblResultsHeader" />
<Columns>
<asp:TemplateField HeaderText="Outturn Pce" SortExpression="OutturnPce">
<ItemTemplate>
<a style="float:none;width:16px;height:16px;margin-right:0px;left:0px;top:26px" title="Pick Type from list..." class="iconSearch" id="btnMemShowPieceType"></a>
<input type="text" id="txtMemPieceType" class="lookuppopup" onblur="CheckMemPiece(this.value)" style="text-transform:uppercase;width:40px" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
这里我试图填充文本框:
function PopulateMemPiece(result) {
if (result.ID > 0) {
$("#<%= hfPieceType.ClientID %>").val(result.ID);
$("#<%= txtMemPieceType.ClientID %>").val(result.Code);
} else {
$("#<%= hfPieceType.ClientID %>").val(0);
$("#<%= txtMemPieceType.ClientID %>").val("");
}
}
但是我收到了这个错误:
错误2586当前名称'txtMemPieceType'不存在 上下文
答案 0 :(得分:0)
不会
s=0;
for i = 1: size(matrix1,2)
for j = 1: size(matrix1,1)
% using matrix1 as index for rows in matrix 2
if matrix1(j,i) > 0,
d = matrix2(i,:)-matrix2(matrix1(j,i),:);
s(i) = s(i) + sum(d.^2);
end
end
end
工作?
您也可以尝试
gvPieceOutturns.FindControl("hfPieceType");
在你的TextBox上,在它们上使用jQuery。
答案 1 :(得分:0)
由于您尝试在JavaScript中访问该控件但它嵌套在Gridview中,我建议您在代码隐藏中创建一个可以解析该控件的属性。我将以下属性添加到.cs文件中:
编辑:控件也嵌套在TemplateField中,因此我们需要遍历Gridview的行以找到需要更新的所需行。
protected HtmlInputText txtMemPieceType
{
get { return findMemPieceType(); }
}
private HtmlInputText findMemPieceType()
{
foreach (GridViewRow row in gvPieceOutturns.Rows)
{
if (/* Determine which row has the info you need */)
{
return row.FindControl("txtMemPieceType") as HtmlInputText;
}
}
}
您需要想出一种方法来区分需要更新的行。另外,如果有问题的行可以在选择项目时触发类似RowCommand的Gridview事件,那么您可以执行与此类似的操作:
protected HtmlInputText txtMemPieceType { get; set; }
void gvPieceOutturns_RowCommand(Object sender, GridViewCommandEventArgs e)
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = ContactsGridView.Rows[index];
txtMemPieceType = row.FindControl("txtMemPieceType") as HtmlInputText;
}