में सिस्टम.Web.UI.WebControls.GridView प्रकार की ऑब्जेक्ट डालने में असमर्थ। मैंने एक विधि लिखा है जो हटाए गए बटन पर क्लिक होने पर मेरे एएसपीनेट ग्रिडव्यू से पंक्तियां हटा देता है और संपादन बटन के लिए एक और तरीका क्लिक किया गया है दोनों संपादन और हटाएं बटन ग्रिडव्यू नियंत्रण में निर्मित हैं।एएसपी.NET
हालांकि जब मैं इन बटनों को दबाता हूं (संपादित/हटाता हूं) और अपवाद फेंक दिया जाता है। 'System.Web.UI.WebControls.Button' टाइप करने के लिए 'System.Web.UI.WebControls.GridView' प्रकार का ऑब्जेक्ट डालने में असमर्थ। जो लाइन
Button btn = (Button)sender;
समस्या यहां पर इशारा कर रही है कि इस लाइन को संपादित के दोनों से संबंधित या तरीकों को नष्ट नहीं किया जाता है। यह किसी अन्य कॉलम में एएसपी बटन से संबंधित है, और इसी कारण से मैं खो गया हूं। मेरे द्वारा इस समस्या का समाधान कैसे किया जा सकता है? शोResponses विधि के साथ OnRowDeleting और OnRowEditing संघर्ष दोनों का क्या कारण बन रहा है?
यहाँ aspx
<asp:GridView runat="server" ID="gvShowQuestionnaires" HeaderStyle-CssClass="table_header" CssClass="view" AlternatingRowStyle-CssClass="alt" AlternatingRowStyle-BackColor="#f3f4f8" AutoGenerateColumns="False"
DataKeyNames='QuestionnaireID' OnRowDeleting="gvShowQuestionnaires_RowDeleting" OnRowEditing="gvShowQuestionnaires_RowEdit" FooterStyle-CssClass="view_table_footer" OnRowCommand="showResponses">
<Columns>
<asp:BoundField DataField="QuestionnaireID" HeaderText="ID" HeaderStyle-Width="80px" ItemStyle-CssClass="bo"></asp:BoundField>
<asp:BoundField DataField="QuestionnaireName" HeaderText="Questionnaire Name" />
<asp:TemplateField HeaderText="Results" HeaderStyle-Width="150px">
<ItemTemplate>
<asp:Button runat="server" ID="button1" CommandArgument='<%# Eval("QuestionnaireID") %>' OnClick="showResponses" text="Results"/>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="Options" ShowDeleteButton="True" ShowEditButton="true" EditText="Edit"></asp:CommandField>
</Columns>
</asp:GridView>
यहाँ है और पीछे कोड है:
protected void gvShowQuestionnaires_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int questionnaireID = (int)gvShowQuestionnaires.DataKeys[Convert.ToInt32(e.RowIndex)].Value;
GetData.DeleteQuestionnaire(questionnaireID);
gvShowQuestionnaires.DataSource = DT;
gvShowQuestionnaires.DataBind();
}
protected void gvShowQuestionnaires_RowEdit(object sender, GridViewEditEventArgs e)
{
string id = gvShowQuestionnaires.Rows[e.NewEditIndex].Cells[0].Text;
Session["qID"] = id;
Response.Redirect("~/members/edit_questionnaire.aspx");
}
protected void showResponses(object sender, EventArgs e)
{
Button btn = (Button)sender;
string id = btn.CommandArgument.ToString();
Session["qID"] = id;
Response.Redirect("~/members/questionnaire_responses.aspx");
}
किसी भी मदद की बहुत सराहना करेंगे।
इस उत्तर आदमी – Mubarek
धन्यवाद है। मुझे एक त्रुटि मिल रही है 'शो रेस्पॉन्स' के लिए 'ओवरलोड' लाइन ' 'ऑनक्लिक = "शो रेस्पॉन्स" टेक्स्ट = "परिणाम" />' मैं इसे कैसे हल कर सकता हूं? –
HGomez90
@Rupert: मूल रूप से उस घटना के लिए एक अलग हैंडलर का उपयोग करें। आप अच्छी तरह से 'कमांडआर्गमेंट' निकालने के बाद दोनों हैंडलर को एक ही विधि में कॉल करना चाहते हैं। –