2013-08-25 31 views
0

我創建了一個帶有文本框的自定義控件。在ASP.net的GridView中使用TextBox進行自定義控件

我在GridView中調用它。當更新事件被觸發時,它總是保存0. 我已經使用了以下代碼,任何人都可以幫助完成相同的任務。

以下是用於自定義控件的代碼。

ASCX代碼

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ItemRequiredTextBox.ascx.cs" 
Inherits="ItemRequiredTextBox" %> 
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> 

<asp:TextBox ID="txtWin_Delievered_Qty" runat="server" > 

<asp:FilteredTextBoxExtender ID="ftbe3" runat="server" TargetControlID="txtWin_Delievered_Qty" 
ValidChars="1234567890" /> 
<asp:CompareValidator ID="CompareValidator1" runat="server" Display="None" ValueToCompare='<%# this.Text2 %>' ControlToValidate="txtWin_Delievered_Qty" Type="Integer" 
ErrorMessage="Quantity to be delievered can not be More than Required Quantity" 
Operator="LessThanEqual"> 

<asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" TargetControlID="CompareValidator1" 
runat="server"> 

<asp:CompareValidator ID="CompareValidator2" runat="server" Display="None" ValueToCompare='<%# this.Text1 %>' ControlToValidate="txtWin_Delievered_Qty" Type="Integer" 
ErrorMessage="Quantity delievered can not be less than delievered Quantity" Operator="GreaterThanEqual"> 
<asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" TargetControlID="CompareValidator2" 
runat="server"> 

ASCX.CS代碼

using System; 
using System.Data; 
using System.ComponentModel; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 

public partial class ItemRequiredTextBox : System.Web.UI.UserControl 
{ 
[Bindable(true, BindingDirection.TwoWay)] 

protected void Page_Load(object sender, EventArgs e) 
{ 

} 

private int TexT1; 
private int TexT2; 

public int Text1 
{ 
get { return TexT1; } 
set { TexT1 = value; } 
} 

public int Text2 
{ 
get { return TexT2; } 
set { TexT2 = value; } 
} 
public string Text 
{ 
get 
{ 
String s = (String)ViewState["Text"]; 
return ((s == null) ? String.Empty : s); 
} 

set 
{ 
ViewState["Text"] = value; 
} 
} 




} 

回答

0

創建用戶控件的公開屬性來獲取文本框的值:

public string Text 
{ 
    get 
    { 
     return txtWin_Delievered_Qty.Text; 
    } 
} 

,並訪問價值在th ËGridView控件更新事件:

ItemRequiredTextBox irtBox = (ItemRequiredTextBox)gvMyGridView.Rows[e.Item.ItemIndex].FindControl("updatedBy"); 
string myText = irtBox.Text; 

這裏gvMyGridView是你的GridView

+0

試過withis代碼,但它沒有工作,網格視圖還是更新0值... – RJ1511

+0

我已經編輯我的答案。 – afzalulh

+0

謝謝我得到了答案....我實際上綁定相同的值2屬性,我刪除了一個,它的工作....非常感謝:)反正:) – RJ1511

相關問題